// source --> http://www.asmwebtech.com/wp-content/plugins/jetpack/modules/related-posts/related-posts.js?ver=20150408 /* jshint onevar: false */ /* globals related_posts_js_options */ /** * Load related posts */ (function($) { var jprp = { response: null, /** * Utility get related posts JSON endpoint from URLs * * @param {string} URL (optional) * @return {string} Endpoint URL */ getEndpointURL: function( URL ) { var locationObject, is_customizer = 'undefined' !== typeof wp && wp.customize && wp.customize.settings && wp.customize.settings.url && wp.customize.settings.url.self; // If we're in Customizer, write the correct URL. if ( is_customizer ) { locationObject = document.createElement( 'a' ); locationObject.href = wp.customize.settings.url.self; } else { locationObject = document.location; } if ( 'string' === typeof( URL ) && URL.match( /^https?:\/\// ) ) { locationObject = document.createElement( 'a' ); locationObject.href = URL; } var args = 'relatedposts=1'; if ( $( '#jp-relatedposts' ).data( 'exclude' ) ) { args += '&relatedposts_exclude=' + $( '#jp-relatedposts' ).data( 'exclude' ); } if ( is_customizer ) { args += '&jetpackrpcustomize=1'; } var pathname = locationObject.pathname; if ( '/' !== pathname[0] ) { pathname = '/' + pathname; } if ( '' === locationObject.search ) { return pathname + '?' + args; } else { return pathname + locationObject.search + '&' + args; } }, getAnchor: function( post, classNames ) { var anchor_title = post.title; if ( '' !== ( '' + post.excerpt ) ) { anchor_title += '\n\n' + post.excerpt; } var anchor = $( '' ); anchor.attr({ 'class': classNames, 'href': post.url, 'title': anchor_title, 'rel': post.rel, 'data-origin': post.url_meta.origin, 'data-position': post.url_meta.position }); var anchor_html = $( '
' ).append( anchor ).html(); return [ anchor_html.substring( 0, anchor_html.length-4 ), '' ]; }, generateMinimalHtml: function( posts, options ) { var self = this; var html = ''; $.each( posts, function( index, post ) { var anchor = self.getAnchor( post, 'jp-relatedposts-post-a' ); var classes = 'jp-relatedposts-post jp-relatedposts-post' + index; if ( post.classes.length > 0 ) { classes += ' ' + post.classes.join( ' ' ); } html += '

'; html += ''; if ( options.showDate ) { html += ''; } if ( options.showContext ) { html += ''; } html += '

'; } ); return ''; }, generateVisualHtml: function( posts, options ) { var self = this; var html = ''; $.each( posts, function( index, post ) { var anchor = self.getAnchor( post, 'jp-relatedposts-post-a' ); var classes = 'jp-relatedposts-post jp-relatedposts-post' + index; if ( post.classes.length > 0 ) { classes += ' ' + post.classes.join( ' ' ); } if ( ! post.img.src ) { classes += ' jp-relatedposts-post-nothumbs'; } else { classes += ' jp-relatedposts-post-thumbs'; } html += '
'; if ( post.img.src ) { html += anchor[0] + '' + anchor[1]; } else { var anchor_overlay = self.getAnchor( post, 'jp-relatedposts-post-a jp-relatedposts-post-aoverlay' ); html += anchor_overlay[0] + anchor_overlay[1]; } html += '<' + related_posts_js_options.post_heading + ' class="jp-relatedposts-post-title">' + anchor[0] + post.title + anchor[1] + ''; html += '

' ).text( post.excerpt ).html() + '

'; if ( options.showDate ) { html += ''; } if ( options.showContext ) { html += ''; } html += '
'; } ); return ''; }, /** * We want to set a max height on the excerpt however we want to set * this according to the natual pacing of the page as we never want to * cut off a line of text in the middle so we need to do some detective * work. */ setVisualExcerptHeights: function() { var elements = $( '#jp-relatedposts .jp-relatedposts-post-nothumbs .jp-relatedposts-post-excerpt' ); if ( 0 >= elements.length ) { return; } var fontSize = parseInt( elements.first().css( 'font-size' ), 10 ), lineHeight = parseInt( elements.first().css( 'line-height' ), 10 ); // Show 5 lines of text elements.css( 'max-height', ( 5 * lineHeight / fontSize ) + 'em' ); }, getTrackedUrl: function( anchor ) { var args = 'relatedposts_hit=1'; args += '&relatedposts_origin=' + $( anchor ).data( 'origin' ); args += '&relatedposts_position=' + $( anchor ).data( 'position' ); var pathname = anchor.pathname; if ( '/' !== pathname[0] ) { pathname = '/' + pathname; } if ( '' === anchor.search ) { return pathname + '?' + args; } else { return pathname + anchor.search + '&' + args; } }, cleanupTrackedUrl: function() { if ( 'function' !== typeof history.replaceState ) { return; } var cleaned_search = document.location.search.replace( /\brelatedposts_[a-z]+=[0-9]*&?\b/gi, '' ); if ( '?' === cleaned_search ) { cleaned_search = ''; } if ( document.location.search !== cleaned_search ) { history.replaceState( {}, document.title, document.location.pathname + cleaned_search ); } } }; /** * Initialize Related Posts. */ function startRelatedPosts() { jprp.cleanupTrackedUrl(); var endpointURL = jprp.getEndpointURL(), $relatedPosts = $( '#jp-relatedposts' ); $.getJSON( endpointURL, function( response ) { if ( 0 === response.items.length || 0 === $relatedPosts.length ) { return; } jprp.response = response; var html, showThumbnails, options = {}; if ( 'undefined' !== typeof wp && wp.customize ) { showThumbnails = wp.customize.instance( 'jetpack_relatedposts[show_thumbnails]' ).get(); options.showDate = wp.customize.instance( 'jetpack_relatedposts[show_date]' ).get(); options.showContext = wp.customize.instance( 'jetpack_relatedposts[show_context]' ).get(); options.layout = wp.customize.instance( 'jetpack_relatedposts[layout]' ).get(); } else { showThumbnails = response.show_thumbnails; options.showDate = response.show_date; options.showContext = response.show_context; options.layout = response.layout; } html = ! showThumbnails ? jprp.generateMinimalHtml( response.items, options ) : jprp.generateVisualHtml( response.items, options ); $relatedPosts.append( html ); jprp.setVisualExcerptHeights(); if ( options.showDate ) { $relatedPosts.find( '.jp-relatedposts-post-date' ).show(); } $relatedPosts.show(); $( '#jp-relatedposts a.jp-relatedposts-post-a' ).click(function() { this.href = jprp.getTrackedUrl( this ); }); } ); } $( function() { if ( 'undefined' !== typeof wp && wp.customize ) { if ( wp.customize.selectiveRefresh ) { wp.customize.selectiveRefresh.bind( 'partial-content-rendered', function( placement ) { if ( 'jetpack_relatedposts' === placement.partial.id ) { startRelatedPosts(); } } ); } wp.customize.bind( 'preview-ready', startRelatedPosts ); } else { startRelatedPosts(); } } ); })(jQuery); // source --> http://www.asmwebtech.com/wp-content/plugins/font/js/jquery.fcarousel.min.js?ver=4.7.5 /*! * fcarousel - Riding carousels with jQuery * http://sorgalla.com/fcarousel/ * * Copyright (c) 2006 Jan Sorgalla (http://sorgalla.com) * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. * * Built on top of the jQuery library * http://jquery.com * * Inspired by the "Carousel Component" by Bill Scott * http://billwscott.com/carousel/ */ (function(i){var q={vertical:false,rtl:false,start:1,offset:1,size:null,scroll:3,visible:null,animation:"normal",easing:"swing",auto:0,wrap:null,initCallback:null,reloadCallback:null,itemLoadCallback:null,itemFirstInCallback:null,itemFirstOutCallback:null,itemLastInCallback:null,itemLastOutCallback:null,itemVisibleInCallback:null,itemVisibleOutCallback:null,buttonNextHTML:"
",buttonPrevHTML:"
",buttonNextEvent:"click",buttonPrevEvent:"click",buttonNextCallback:null,buttonPrevCallback:null, itemFallbackDimension:null},r=false;i(window).bind("load.fcarousel",function(){r=true});i.fcarousel=function(a,c){this.options=i.extend({},q,c||{});this.autoStopped=this.locked=false;this.buttonPrevState=this.buttonNextState=this.buttonPrev=this.buttonNext=this.list=this.clip=this.container=null;if(!c||c.rtl===undefined)this.options.rtl=(i(a).attr("dir")||i("html").attr("dir")||"").toLowerCase()=="rtl";this.wh=!this.options.vertical?"width":"height";this.lt=!this.options.vertical?this.options.rtl? "right":"left":"top";for(var b="",d=a.className.split(" "),f=0;f
");this.container=this.container.parent()}else if(!this.container.hasClass("fcarousel-container"))this.container= this.list.wrap("
").parent()}else{this.container=i(a);this.list=this.container.find("ul,ol").eq(0)}b!==""&&this.container.parent()[0].className.indexOf("fcarousel-skin")==-1&&this.container.wrap('
');this.clip=this.list.parent();if(!this.clip.length||!this.clip.hasClass("fcarousel-clip"))this.clip=this.list.wrap("
").parent();this.buttonNext=i(".fcarousel-next",this.container);if(this.buttonNext.size()===0&&this.options.buttonNextHTML!==null)this.buttonNext= this.clip.after(this.options.buttonNextHTML).next();this.buttonNext.addClass(this.className("fcarousel-next"));this.buttonPrev=i(".fcarousel-prev",this.container);if(this.buttonPrev.size()===0&&this.options.buttonPrevHTML!==null)this.buttonPrev=this.clip.after(this.options.buttonPrevHTML).next();this.buttonPrev.addClass(this.className("fcarousel-prev"));this.clip.addClass(this.className("fcarousel-clip")).css({overflow:"hidden",position:"relative"});this.list.addClass(this.className("fcarousel-list")).css({overflow:"hidden", position:"relative",top:0,margin:0,padding:0}).css(this.options.rtl?"right":"left",0);this.container.addClass(this.className("fcarousel-container")).css({position:"relative"});!this.options.vertical&&this.options.rtl&&this.container.addClass("fcarousel-direction-rtl").attr("dir","rtl");var j=this.options.visible!==null?Math.ceil(this.clipping()/this.options.visible):null;b=this.list.children("li");var e=this;if(b.size()>0){var g=0,k=this.options.offset;b.each(function(){e.format(this,k++);g+=e.dimension(this, j)});this.list.css(this.wh,g+100+"px");if(!c||c.size===undefined)this.options.size=b.size()}this.container.css("display","block");this.buttonNext.css("display","block");this.buttonPrev.css("display","block");this.funcNext=function(){e.next()};this.funcPrev=function(){e.prev()};this.funcResize=function(){e.reload()};this.options.initCallback!==null&&this.options.initCallback(this,"init");if(!r&&i.browser&&i.browser.safari){this.buttons(false,false);i(window).bind("load.fcarousel",function(){e.setup()})}else this.setup()}; var h=i.fcarousel;h.fn=h.prototype={fcarousel:"0.2.7"};h.fn.extend=h.extend=i.extend;h.fn.extend({setup:function(){this.prevLast=this.prevFirst=this.last=this.first=null;this.animating=false;this.tail=this.timer=null;this.inTail=false;if(!this.locked){this.list.css(this.lt,this.pos(this.options.offset)+"px");var a=this.pos(this.options.start,true);this.prevFirst=this.prevLast=null;this.animate(a,false);i(window).unbind("resize.fcarousel",this.funcResize).bind("resize.fcarousel",this.funcResize)}}, reset:function(){this.list.empty();this.list.css(this.lt,"0px");this.list.css(this.wh,"10px");this.options.initCallback!==null&&this.options.initCallback(this,"reset");this.setup()},reload:function(){this.tail!==null&&this.inTail&&this.list.css(this.lt,h.intval(this.list.css(this.lt))+this.tail);this.tail=null;this.inTail=false;this.options.reloadCallback!==null&&this.options.reloadCallback(this);if(this.options.visible!==null){var a=this,c=Math.ceil(this.clipping()/this.options.visible),b=0,d=0; this.list.children("li").each(function(f){b+=a.dimension(this,c);if(f+1this.options.size)c=this.options.size;for(var b= a;b<=c;b++){var d=this.get(b);if(!d.length||d.hasClass("fcarousel-item-placeholder"))return false}return true},get:function(a){return i(".fcarousel-item-"+a,this.list)},add:function(a,c){var b=this.get(a),d=0,f=i(c);if(b.length===0){var j,e=h.intval(a);for(b=this.create(a);;){j=this.get(--e);if(e<=0||j.length){e<=0?this.list.prepend(b):j.after(b);break}}}else d=this.dimension(b);if(f.get(0).nodeName.toUpperCase()=="LI"){b.replaceWith(f);b=f}else b.empty().append(c);this.format(b.removeClass(this.className("fcarousel-item-placeholder")), a);f=this.options.visible!==null?Math.ceil(this.clipping()/this.options.visible):null;d=this.dimension(b,f)-d;a>0&&a=this.first&&a<=this.last)){var b=this.dimension(c);athis.options.size?this.options.size:a;for(var d= this.first>a,f=this.options.wrap!="circular"&&this.first<=1?1:this.first,j=d?this.get(f):this.get(this.last),e=d?f:f-1,g=null,k=0,l=false,m=0;d?--e>=a:++ethis.options.size)){j=this.get(this.index(e));if(j.length)g=this.add(e,j.clone(true))}}j=g;m=this.dimension(g);if(l)k+= m;if(this.first!==null&&(this.options.wrap=="circular"||e>=1&&(this.options.size===null||e<=this.options.size)))b=d?b+m:b-m}f=this.clipping();var p=[],o=0,n=0;j=this.get(a-1);for(e=a;++o;){g=this.get(e);l=!g.length;if(g.length===0){g=this.create(e).addClass(this.className("fcarousel-item-placeholder"));j.length===0?this.list.prepend(g):j[d?"before":"after"](g);if(this.first!==null&&this.options.wrap=="circular"&&this.options.size!==null&&(e<=0||e>this.options.size)){j=this.get(this.index(e));if(j.length)g= this.add(e,j.clone(true))}}j=g;m=this.dimension(g);if(m===0)throw Error("fcarousel: No width/height set for items. This will cause an infinite loop. Aborting...");if(this.options.wrap!="circular"&&this.options.size!==null&&e>this.options.size)p.push(g);else if(l)k+=m;n+=m;if(n>=f)break;e++}for(g=0;g0){this.list.css(this.wh,this.dimension(this.list)+k+"px");if(d){b-=k;this.list.css(this.lt,h.intval(this.list.css(this.lt))-k+"px")}}k=a+o-1;if(this.options.wrap!="circular"&& this.options.size&&k>this.options.size)k=this.options.size;if(e>k){o=0;e=k;for(n=0;++o;){g=this.get(e--);if(!g.length)break;n+=this.dimension(g);if(n>=f)break}}e=k-o+1;if(this.options.wrap!="circular"&&e<1)e=1;if(this.inTail&&d){b+=this.tail;this.inTail=false}this.tail=null;if(this.options.wrap!="circular"&&k==this.options.size&&k-o+1>=1){d=h.margin(this.get(k),!this.options.vertical?"marginRight":"marginBottom");if(n-d>f)this.tail=n-f-d}if(c&&a===this.options.size&&this.tail){b-=this.tail;this.inTail= true}for(;a-- >e;)b+=this.dimension(this.get(a));this.prevFirst=this.first;this.prevLast=this.last;this.first=e;this.last=k;return b},animate:function(a,c){if(!(this.locked||this.animating)){this.animating=true;var b=this,d=function(){b.animating=false;a===0&&b.list.css(b.lt,0);if(!b.autoStopped&&(b.options.wrap=="circular"||b.options.wrap=="both"||b.options.wrap=="last"||b.options.size===null||b.last=b.first&&f<=b.last)&&(f<1||f>b.options.size))b.remove(f)};this.notify("onBeforeAnimation");if(!this.options.animation||c===false){this.list.css(this.lt,a+"px");d()}else this.list.animate(!this.options.vertical?this.options.rtl?{right:a}:{left:a}:{top:a},this.options.animation,this.options.easing,d)}},startAuto:function(a){if(a!==undefined)this.options.auto=a;if(this.options.auto===0)return this.stopAuto(); if(this.timer===null){this.autoStopped=false;var c=this;this.timer=window.setTimeout(function(){c.next()},this.options.auto*1E3)}},stopAuto:function(){this.pauseAuto();this.autoStopped=true},pauseAuto:function(){if(this.timer!==null){window.clearTimeout(this.timer);this.timer=null}},buttons:function(a,c){if(a==null){a=!this.locked&&this.options.size!==0&&(this.options.wrap&&this.options.wrap!="first"||this.options.size===null||this.last=this.options.size)a=this.tail!==null&&!this.inTail}if(c==null){c=!this.locked&&this.options.size!==0&&(this.options.wrap&&this.options.wrap!="last"||this.first>1);if(!this.locked&&(!this.options.wrap||this.options.wrap=="last")&&this.options.size!==null&&this.first==1)c=this.tail!==null&&this.inTail}var b=this;if(this.buttonNext.size()>0){this.buttonNext.unbind(this.options.buttonNextEvent+".fcarousel",this.funcNext);a&&this.buttonNext.bind(this.options.buttonNextEvent+ ".fcarousel",this.funcNext);this.buttonNext[a?"removeClass":"addClass"](this.className("fcarousel-next-disabled")).attr("disabled",a?false:true);this.options.buttonNextCallback!==null&&this.buttonNext.data("fcarouselstate")!=a&&this.buttonNext.each(function(){b.options.buttonNextCallback(b,this,a)}).data("fcarouselstate",a)}else this.options.buttonNextCallback!==null&&this.buttonNextState!=a&&this.options.buttonNextCallback(b,null,a);if(this.buttonPrev.size()>0){this.buttonPrev.unbind(this.options.buttonPrevEvent+ ".fcarousel",this.funcPrev);c&&this.buttonPrev.bind(this.options.buttonPrevEvent+".fcarousel",this.funcPrev);this.buttonPrev[c?"removeClass":"addClass"](this.className("fcarousel-prev-disabled")).attr("disabled",c?false:true);this.options.buttonPrevCallback!==null&&this.buttonPrev.data("fcarouselstate")!=c&&this.buttonPrev.each(function(){b.options.buttonPrevCallback(b,this,c)}).data("fcarouselstate",c)}else this.options.buttonPrevCallback!==null&&this.buttonPrevState!=c&&this.options.buttonPrevCallback(b, null,c);this.buttonNextState=a;this.buttonPrevState=c},notify:function(a){var c=this.prevFirst===null?"init":this.prevFirst=j&&l<=e)&&a(l)}}}},create:function(a){return this.format("
  • ",a)},format:function(a,c){a=i(a);for(var b=a.get(0).className.split(" "),d=0;d http://www.asmwebtech.com/wp-includes/js/jquery/ui/core.min.js?ver=1.11.4 /*! * jQuery UI Core 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/category/ui-core/ */ !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){function b(b,d){var e,f,g,h=b.nodeName.toLowerCase();return"area"===h?(e=b.parentNode,f=e.name,!(!b.href||!f||"map"!==e.nodeName.toLowerCase())&&(g=a("img[usemap='#"+f+"']")[0],!!g&&c(g))):(/^(input|select|textarea|button|object)$/.test(h)?!b.disabled:"a"===h?b.href||d:d)&&c(b)}function c(b){return a.expr.filters.visible(b)&&!a(b).parents().addBack().filter(function(){return"hidden"===a.css(this,"visibility")}).length}a.ui=a.ui||{},a.extend(a.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),a.fn.extend({scrollParent:function(b){var c=this.css("position"),d="absolute"===c,e=b?/(auto|scroll|hidden)/:/(auto|scroll)/,f=this.parents().filter(function(){var b=a(this);return(!d||"static"!==b.css("position"))&&e.test(b.css("overflow")+b.css("overflow-y")+b.css("overflow-x"))}).eq(0);return"fixed"!==c&&f.length?f:a(this[0].ownerDocument||document)},uniqueId:function(){var a=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++a)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&a(this).removeAttr("id")})}}),a.extend(a.expr[":"],{data:a.expr.createPseudo?a.expr.createPseudo(function(b){return function(c){return!!a.data(c,b)}}):function(b,c,d){return!!a.data(b,d[3])},focusable:function(c){return b(c,!isNaN(a.attr(c,"tabindex")))},tabbable:function(c){var d=a.attr(c,"tabindex"),e=isNaN(d);return(e||d>=0)&&b(c,!e)}}),a("").outerWidth(1).jquery||a.each(["Width","Height"],function(b,c){function d(b,c,d,f){return a.each(e,function(){c-=parseFloat(a.css(b,"padding"+this))||0,d&&(c-=parseFloat(a.css(b,"border"+this+"Width"))||0),f&&(c-=parseFloat(a.css(b,"margin"+this))||0)}),c}var e="Width"===c?["Left","Right"]:["Top","Bottom"],f=c.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+c]=function(b){return void 0===b?g["inner"+c].call(this):this.each(function(){a(this).css(f,d(this,b)+"px")})},a.fn["outer"+c]=function(b,e){return"number"!=typeof b?g["outer"+c].call(this,b):this.each(function(){a(this).css(f,d(this,b,!0,e)+"px")})}}),a.fn.addBack||(a.fn.addBack=function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}),a("").data("a-b","a").removeData("a-b").data("a-b")&&(a.fn.removeData=function(b){return function(c){return arguments.length?b.call(this,a.camelCase(c)):b.call(this)}}(a.fn.removeData)),a.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),a.fn.extend({focus:function(b){return function(c,d){return"number"==typeof c?this.each(function(){var b=this;setTimeout(function(){a(b).focus(),d&&d.call(b)},c)}):b.apply(this,arguments)}}(a.fn.focus),disableSelection:function(){var a="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(a+".ui-disableSelection",function(a){a.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(b){if(void 0!==b)return this.css("zIndex",b);if(this.length)for(var c,d,e=a(this[0]);e.length&&e[0]!==document;){if(c=e.css("position"),("absolute"===c||"relative"===c||"fixed"===c)&&(d=parseInt(e.css("zIndex"),10),!isNaN(d)&&0!==d))return d;e=e.parent()}return 0}}),a.ui.plugin={add:function(b,c,d){var e,f=a.ui[b].prototype;for(e in d)f.plugins[e]=f.plugins[e]||[],f.plugins[e].push([c,d[e]])},call:function(a,b,c,d){var e,f=a.plugins[b];if(f&&(d||a.element[0].parentNode&&11!==a.element[0].parentNode.nodeType))for(e=0;e http://www.asmwebtech.com/wp-includes/js/jquery/ui/widget.min.js?ver=1.11.4 /*! * jQuery UI Widget 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/jQuery.widget/ */ !function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){var b=0,c=Array.prototype.slice;return a.cleanData=function(b){return function(c){var d,e,f;for(f=0;null!=(e=c[f]);f++)try{d=a._data(e,"events"),d&&d.remove&&a(e).triggerHandler("remove")}catch(g){}b(c)}}(a.cleanData),a.widget=function(b,c,d){var e,f,g,h,i={},j=b.split(".")[0];return b=b.split(".")[1],e=j+"-"+b,d||(d=c,c=a.Widget),a.expr[":"][e.toLowerCase()]=function(b){return!!a.data(b,e)},a[j]=a[j]||{},f=a[j][b],g=a[j][b]=function(a,b){return this._createWidget?void(arguments.length&&this._createWidget(a,b)):new g(a,b)},a.extend(g,f,{version:d.version,_proto:a.extend({},d),_childConstructors:[]}),h=new c,h.options=a.widget.extend({},h.options),a.each(d,function(b,d){return a.isFunction(d)?void(i[b]=function(){var a=function(){return c.prototype[b].apply(this,arguments)},e=function(a){return c.prototype[b].apply(this,a)};return function(){var b,c=this._super,f=this._superApply;return this._super=a,this._superApply=e,b=d.apply(this,arguments),this._super=c,this._superApply=f,b}}()):void(i[b]=d)}),g.prototype=a.widget.extend(h,{widgetEventPrefix:f?h.widgetEventPrefix||b:b},i,{constructor:g,namespace:j,widgetName:b,widgetFullName:e}),f?(a.each(f._childConstructors,function(b,c){var d=c.prototype;a.widget(d.namespace+"."+d.widgetName,g,c._proto)}),delete f._childConstructors):c._childConstructors.push(g),a.widget.bridge(b,g),g},a.widget.extend=function(b){for(var d,e,f=c.call(arguments,1),g=0,h=f.length;g",options:{disabled:!1,create:null},_createWidget:function(c,d){d=a(d||this.defaultElement||this)[0],this.element=a(d),this.uuid=b++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=a(),this.hoverable=a(),this.focusable=a(),d!==this&&(a.data(d,this.widgetFullName,this),this._on(!0,this.element,{remove:function(a){a.target===d&&this.destroy()}}),this.document=a(d.style?d.ownerDocument:d.document||d),this.window=a(this.document[0].defaultView||this.document[0].parentWindow)),this.options=a.widget.extend({},this.options,this._getCreateOptions(),c),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:a.noop,_getCreateEventData:a.noop,_create:a.noop,_init:a.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(a.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:a.noop,widget:function(){return this.element},option:function(b,c){var d,e,f,g=b;if(0===arguments.length)return a.widget.extend({},this.options);if("string"==typeof b)if(g={},d=b.split("."),b=d.shift(),d.length){for(e=g[b]=a.widget.extend({},this.options[b]),f=0;f http://www.asmwebtech.com/wp-includes/js/jquery/ui/mouse.min.js?ver=1.11.4 /*! * jQuery UI Mouse 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/mouse/ */ !function(a){"function"==typeof define&&define.amd?define(["jquery","./widget"],a):a(jQuery)}(function(a){var b=!1;return a(document).mouseup(function(){b=!1}),a.widget("ui.mouse",{version:"1.11.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var b=this;this.element.bind("mousedown."+this.widgetName,function(a){return b._mouseDown(a)}).bind("click."+this.widgetName,function(c){if(!0===a.data(c.target,b.widgetName+".preventClickEvent"))return a.removeData(c.target,b.widgetName+".preventClickEvent"),c.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(c){if(!b){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(c),this._mouseDownEvent=c;var d=this,e=1===c.which,f=!("string"!=typeof this.options.cancel||!c.target.nodeName)&&a(c.target).closest(this.options.cancel).length;return!(e&&!f&&this._mouseCapture(c))||(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){d.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(c)&&this._mouseDelayMet(c)&&(this._mouseStarted=this._mouseStart(c)!==!1,!this._mouseStarted)?(c.preventDefault(),!0):(!0===a.data(c.target,this.widgetName+".preventClickEvent")&&a.removeData(c.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(a){return d._mouseMove(a)},this._mouseUpDelegate=function(a){return d._mouseUp(a)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),c.preventDefault(),b=!0,!0))}},_mouseMove:function(b){if(this._mouseMoved){if(a.ui.ie&&(!document.documentMode||document.documentMode<9)&&!b.button)return this._mouseUp(b);if(!b.which)return this._mouseUp(b)}return(b.which||b.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(b),b.preventDefault()):(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b)),!this._mouseStarted)},_mouseUp:function(c){return this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,c.target===this._mouseDownEvent.target&&a.data(c.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(c)),b=!1,!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})}); // source --> http://www.asmwebtech.com/wp-includes/js/jquery/ui/draggable.min.js?ver=1.11.4 /*! * jQuery UI Draggable 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/draggable/ */ !function(a){"function"==typeof define&&define.amd?define(["jquery","./core","./mouse","./widget"],a):a(jQuery)}(function(a){return a.widget("ui.draggable",a.ui.mouse,{version:"1.11.4",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._setHandleClassName(),this._mouseInit()},_setOption:function(a,b){this._super(a,b),"handle"===a&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?void(this.destroyOnClear=!0):(this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._removeHandleClassName(),void this._mouseDestroy())},_mouseCapture:function(b){var c=this.options;return this._blurActiveElement(b),!(this.helper||c.disabled||a(b.target).closest(".ui-resizable-handle").length>0)&&(this.handle=this._getHandle(b),!!this.handle&&(this._blockFrames(c.iframeFix===!0?"iframe":c.iframeFix),!0))},_blockFrames:function(b){this.iframeBlocks=this.document.find(b).map(function(){var b=a(this);return a("
    ").css("position","absolute").appendTo(b.parent()).outerWidth(b.outerWidth()).outerHeight(b.outerHeight()).offset(b.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(b){var c=this.document[0];if(this.handleElement.is(b.target))try{c.activeElement&&"body"!==c.activeElement.nodeName.toLowerCase()&&a(c.activeElement).blur()}catch(d){}},_mouseStart:function(b){var c=this.options;return this.helper=this._createHelper(b),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),a.ui.ddmanager&&(a.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===a(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(b),this.originalPosition=this.position=this._generatePosition(b,!1),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),this._setContainment(),this._trigger("start",b)===!1?(this._clear(),!1):(this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this._normalizeRightBottom(),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b),!0)},_refreshOffsets:function(a){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:a.pageX-this.offset.left,top:a.pageY-this.offset.top}},_mouseDrag:function(b,c){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(b,!0),this.positionAbs=this._convertPositionTo("absolute"),!c){var d=this._uiHash();if(this._trigger("drag",b,d)===!1)return this._mouseUp({}),!1;this.position=d.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),!1},_mouseStop:function(b){var c=this,d=!1;return a.ui.ddmanager&&!this.options.dropBehaviour&&(d=a.ui.ddmanager.drop(this,b)),this.dropped&&(d=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!d||"valid"===this.options.revert&&d||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d)?a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",b)!==!1&&c._clear()}):this._trigger("stop",b)!==!1&&this._clear(),!1},_mouseUp:function(b){return this._unblockFrames(),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b),this.handleElement.is(b.target)&&this.element.focus(),a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(b){return!this.options.handle||!!a(b.target).closest(this.element.find(this.options.handle)).length},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this.handleElement.addClass("ui-draggable-handle")},_removeHandleClassName:function(){this.handleElement.removeClass("ui-draggable-handle")},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper),e=d?a(c.helper.apply(this.element[0],[b])):"clone"===c.helper?this.element.clone().removeAttr("id"):this.element;return e.parents("body").length||e.appendTo("parent"===c.appendTo?this.element[0].parentNode:c.appendTo),d&&e[0]===this.element[0]&&this._setPositionRelative(),e[0]===this.element[0]||/(fixed|absolute)/.test(e.css("position"))||e.css("position","absolute"),e},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(b){"string"==typeof b&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_isRootNode:function(a){return/(html|body)/i.test(a.tagName)||a===this.document[0]},_getParentOffset:function(){var b=this.offsetParent.offset(),c=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==c&&a.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(b={top:0,left:0}),{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var a=this.element.position(),b=this._isRootNode(this.scrollParent[0]);return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+(b?0:this.scrollParent.scrollTop()),left:a.left-(parseInt(this.helper.css("left"),10)||0)+(b?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b,c,d,e=this.options,f=this.document[0];return this.relativeContainer=null,e.containment?"window"===e.containment?void(this.containment=[a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,a(window).scrollLeft()+a(window).width()-this.helperProportions.width-this.margins.left,a(window).scrollTop()+(a(window).height()||f.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):"document"===e.containment?void(this.containment=[0,0,a(f).width()-this.helperProportions.width-this.margins.left,(a(f).height()||f.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):e.containment.constructor===Array?void(this.containment=e.containment):("parent"===e.containment&&(e.containment=this.helper[0].parentNode),c=a(e.containment),d=c[0],void(d&&(b=/(scroll|auto)/.test(c.css("overflow")),this.containment=[(parseInt(c.css("borderLeftWidth"),10)||0)+(parseInt(c.css("paddingLeft"),10)||0),(parseInt(c.css("borderTopWidth"),10)||0)+(parseInt(c.css("paddingTop"),10)||0),(b?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(c.css("borderRightWidth"),10)||0)-(parseInt(c.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(b?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(c.css("borderBottomWidth"),10)||0)-(parseInt(c.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=c))):void(this.containment=null)},_convertPositionTo:function(a,b){b||(b=this.position);var c="absolute"===a?1:-1,d=this._isRootNode(this.scrollParent[0]);return{top:b.top+this.offset.relative.top*c+this.offset.parent.top*c-("fixed"===this.cssPosition?-this.offset.scroll.top:d?0:this.offset.scroll.top)*c,left:b.left+this.offset.relative.left*c+this.offset.parent.left*c-("fixed"===this.cssPosition?-this.offset.scroll.left:d?0:this.offset.scroll.left)*c}},_generatePosition:function(a,b){var c,d,e,f,g=this.options,h=this._isRootNode(this.scrollParent[0]),i=a.pageX,j=a.pageY;return h&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),b&&(this.containment&&(this.relativeContainer?(d=this.relativeContainer.offset(),c=[this.containment[0]+d.left,this.containment[1]+d.top,this.containment[2]+d.left,this.containment[3]+d.top]):c=this.containment,a.pageX-this.offset.click.leftc[2]&&(i=c[2]+this.offset.click.left),a.pageY-this.offset.click.top>c[3]&&(j=c[3]+this.offset.click.top)),g.grid&&(e=g.grid[1]?this.originalPageY+Math.round((j-this.originalPageY)/g.grid[1])*g.grid[1]:this.originalPageY,j=c?e-this.offset.click.top>=c[1]||e-this.offset.click.top>c[3]?e:e-this.offset.click.top>=c[1]?e-g.grid[1]:e+g.grid[1]:e,f=g.grid[0]?this.originalPageX+Math.round((i-this.originalPageX)/g.grid[0])*g.grid[0]:this.originalPageX,i=c?f-this.offset.click.left>=c[0]||f-this.offset.click.left>c[2]?f:f-this.offset.click.left>=c[0]?f-g.grid[0]:f+g.grid[0]:f),"y"===g.axis&&(i=this.originalPageX),"x"===g.axis&&(j=this.originalPageY)),{top:j-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:h?0:this.offset.scroll.top),left:i-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:h?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_normalizeRightBottom:function(){"y"!==this.options.axis&&"auto"!==this.helper.css("right")&&(this.helper.width(this.helper.width()),this.helper.css("right","auto")),"x"!==this.options.axis&&"auto"!==this.helper.css("bottom")&&(this.helper.height(this.helper.height()),this.helper.css("bottom","auto"))},_trigger:function(b,c,d){return d=d||this._uiHash(),a.ui.plugin.call(this,b,[c,d,this],!0),/^(drag|start|stop)/.test(b)&&(this.positionAbs=this._convertPositionTo("absolute"),d.offset=this.positionAbs),a.Widget.prototype._trigger.call(this,b,c,d)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),a.ui.plugin.add("draggable","connectToSortable",{start:function(b,c,d){var e=a.extend({},c,{item:d.element});d.sortables=[],a(d.options.connectToSortable).each(function(){var c=a(this).sortable("instance");c&&!c.options.disabled&&(d.sortables.push(c),c.refreshPositions(),c._trigger("activate",b,e))})},stop:function(b,c,d){var e=a.extend({},c,{item:d.element});d.cancelHelperRemoval=!1,a.each(d.sortables,function(){var a=this;a.isOver?(a.isOver=0,d.cancelHelperRemoval=!0,a.cancelHelperRemoval=!1,a._storedCSS={position:a.placeholder.css("position"),top:a.placeholder.css("top"),left:a.placeholder.css("left")},a._mouseStop(b),a.options.helper=a.options._helper):(a.cancelHelperRemoval=!0,a._trigger("deactivate",b,e))})},drag:function(b,c,d){a.each(d.sortables,function(){var e=!1,f=this;f.positionAbs=d.positionAbs,f.helperProportions=d.helperProportions,f.offset.click=d.offset.click,f._intersectsWith(f.containerCache)&&(e=!0,a.each(d.sortables,function(){return this.positionAbs=d.positionAbs,this.helperProportions=d.helperProportions,this.offset.click=d.offset.click,this!==f&&this._intersectsWith(this.containerCache)&&a.contains(f.element[0],this.element[0])&&(e=!1),e})),e?(f.isOver||(f.isOver=1,d._parent=c.helper.parent(),f.currentItem=c.helper.appendTo(f.element).data("ui-sortable-item",!0),f.options._helper=f.options.helper,f.options.helper=function(){return c.helper[0]},b.target=f.currentItem[0],f._mouseCapture(b,!0),f._mouseStart(b,!0,!0),f.offset.click.top=d.offset.click.top,f.offset.click.left=d.offset.click.left,f.offset.parent.left-=d.offset.parent.left-f.offset.parent.left,f.offset.parent.top-=d.offset.parent.top-f.offset.parent.top,d._trigger("toSortable",b),d.dropped=f.element,a.each(d.sortables,function(){this.refreshPositions()}),d.currentItem=d.element,f.fromOutside=d),f.currentItem&&(f._mouseDrag(b),c.position=f.position)):f.isOver&&(f.isOver=0,f.cancelHelperRemoval=!0,f.options._revert=f.options.revert,f.options.revert=!1,f._trigger("out",b,f._uiHash(f)),f._mouseStop(b,!0),f.options.revert=f.options._revert,f.options.helper=f.options._helper,f.placeholder&&f.placeholder.remove(),c.helper.appendTo(d._parent),d._refreshOffsets(b),c.position=d._generatePosition(b,!0),d._trigger("fromSortable",b),d.dropped=!1,a.each(d.sortables,function(){this.refreshPositions()}))})}}),a.ui.plugin.add("draggable","cursor",{start:function(b,c,d){var e=a("body"),f=d.options;e.css("cursor")&&(f._cursor=e.css("cursor")),e.css("cursor",f.cursor)},stop:function(b,c,d){var e=d.options;e._cursor&&a("body").css("cursor",e._cursor)}}),a.ui.plugin.add("draggable","opacity",{start:function(b,c,d){var e=a(c.helper),f=d.options;e.css("opacity")&&(f._opacity=e.css("opacity")),e.css("opacity",f.opacity)},stop:function(b,c,d){var e=d.options;e._opacity&&a(c.helper).css("opacity",e._opacity)}}),a.ui.plugin.add("draggable","scroll",{start:function(a,b,c){c.scrollParentNotHidden||(c.scrollParentNotHidden=c.helper.scrollParent(!1)),c.scrollParentNotHidden[0]!==c.document[0]&&"HTML"!==c.scrollParentNotHidden[0].tagName&&(c.overflowOffset=c.scrollParentNotHidden.offset())},drag:function(b,c,d){var e=d.options,f=!1,g=d.scrollParentNotHidden[0],h=d.document[0];g!==h&&"HTML"!==g.tagName?(e.axis&&"x"===e.axis||(d.overflowOffset.top+g.offsetHeight-b.pageY=0;m--)i=d.snapElements[m].left-d.margins.left,j=i+d.snapElements[m].width,k=d.snapElements[m].top-d.margins.top,l=k+d.snapElements[m].height,rj+p||tl+p||!a.contains(d.snapElements[m].item.ownerDocument,d.snapElements[m].item)?(d.snapElements[m].snapping&&d.options.snap.release&&d.options.snap.release.call(d.element,b,a.extend(d._uiHash(),{snapItem:d.snapElements[m].item})),d.snapElements[m].snapping=!1):("inner"!==o.snapMode&&(e=Math.abs(k-t)<=p,f=Math.abs(l-s)<=p,g=Math.abs(i-r)<=p,h=Math.abs(j-q)<=p,e&&(c.position.top=d._convertPositionTo("relative",{top:k-d.helperProportions.height,left:0}).top),f&&(c.position.top=d._convertPositionTo("relative",{top:l,left:0}).top),g&&(c.position.left=d._convertPositionTo("relative",{top:0,left:i-d.helperProportions.width}).left),h&&(c.position.left=d._convertPositionTo("relative",{top:0,left:j}).left)),n=e||f||g||h,"outer"!==o.snapMode&&(e=Math.abs(k-s)<=p,f=Math.abs(l-t)<=p,g=Math.abs(i-q)<=p,h=Math.abs(j-r)<=p,e&&(c.position.top=d._convertPositionTo("relative",{top:k,left:0}).top),f&&(c.position.top=d._convertPositionTo("relative",{top:l-d.helperProportions.height,left:0}).top),g&&(c.position.left=d._convertPositionTo("relative",{top:0,left:i}).left),h&&(c.position.left=d._convertPositionTo("relative",{top:0,left:j-d.helperProportions.width}).left)),!d.snapElements[m].snapping&&(e||f||g||h||n)&&d.options.snap.snap&&d.options.snap.snap.call(d.element,b,a.extend(d._uiHash(),{snapItem:d.snapElements[m].item})),d.snapElements[m].snapping=e||f||g||h||n)}}),a.ui.plugin.add("draggable","stack",{start:function(b,c,d){var e,f=d.options,g=a.makeArray(a(f.stack)).sort(function(b,c){return(parseInt(a(b).css("zIndex"),10)||0)-(parseInt(a(c).css("zIndex"),10)||0)});g.length&&(e=parseInt(a(g[0]).css("zIndex"),10)||0,a(g).each(function(b){a(this).css("zIndex",e+b)}),this.css("zIndex",e+g.length))}}),a.ui.plugin.add("draggable","zIndex",{start:function(b,c,d){var e=a(c.helper),f=d.options;e.css("zIndex")&&(f._zIndex=e.css("zIndex")),e.css("zIndex",f.zIndex)},stop:function(b,c,d){var e=d.options;e._zIndex&&a(c.helper).css("zIndex",e._zIndex)}}),a.ui.draggable}); // source --> http://www.asmwebtech.com/wp-includes/js/jquery/ui/slider.min.js?ver=1.11.4 /*! * jQuery UI Slider 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/slider/ */ !function(a){"function"==typeof define&&define.amd?define(["jquery","./core","./mouse","./widget"],a):a(jQuery)}(function(a){return a.widget("ui.slider",a.ui.mouse,{version:"1.11.4",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all"),this._refresh(),this._setOption("disabled",this.options.disabled),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var b,c,d=this.options,e=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f="",g=[];for(c=d.values&&d.values.length||1,e.length>c&&(e.slice(c).remove(),e=e.slice(0,c)),b=e.length;b
    ").appendTo(this.element),c="ui-slider-range ui-widget-header ui-corner-all"),this.range.addClass(c+("min"===b.range||"max"===b.range?" ui-slider-range-"+b.range:""))):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"),this._mouseDestroy()},_mouseCapture:function(b){var c,d,e,f,g,h,i,j,k=this,l=this.options;return!l.disabled&&(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),c={x:b.pageX,y:b.pageY},d=this._normValueFromMouse(c),e=this._valueMax()-this._valueMin()+1,this.handles.each(function(b){var c=Math.abs(d-k.values(b));(e>c||e===c&&(b===k._lastChangedValue||k.values(b)===l.min))&&(e=c,f=a(this),g=b)}),h=this._start(b,g),h!==!1&&(this._mouseSliding=!0,this._handleIndex=g,f.addClass("ui-state-active").focus(),i=f.offset(),j=!a(b.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=j?{left:0,top:0}:{left:b.pageX-i.left-f.width()/2,top:b.pageY-i.top-f.height()/2-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(b,g,d),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(a){var b={x:a.pageX,y:a.pageY},c=this._normValueFromMouse(b);return this._slide(a,this._handleIndex,c),!1},_mouseStop:function(a){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(a,this._handleIndex),this._change(a,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(a){var b,c,d,e,f;return"horizontal"===this.orientation?(b=this.elementSize.width,c=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(b=this.elementSize.height,c=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),d=c/b,d>1&&(d=1),d<0&&(d=0),"vertical"===this.orientation&&(d=1-d),e=this._valueMax()-this._valueMin(),f=this._valueMin()+d*e,this._trimAlignValue(f)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};return this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("start",a,c)},_slide:function(a,b,c){var d,e,f;this.options.values&&this.options.values.length?(d=this.values(b?0:1),2===this.options.values.length&&this.options.range===!0&&(0===b&&c>d||1===b&&c1)return this.options.values[b]=this._trimAlignValue(c),this._refreshValue(),void this._change(null,b);if(!arguments.length)return this._values();if(!a.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(b):this.value();for(d=this.options.values,e=arguments[0],f=0;f=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b,d=a-c;return 2*Math.abs(c)>=b&&(d+=c>0?b:-b),parseFloat(d.toFixed(5))},_calculateNewMax:function(){var a=this.options.max,b=this._valueMin(),c=this.options.step,d=Math.floor(+(a-b).toFixed(this._precision())/c)*c;a=d+b,this.max=parseFloat(a.toFixed(this._precision()))},_precision:function(){var a=this._precisionOf(this.options.step);return null!==this.options.min&&(a=Math.max(a,this._precisionOf(this.options.min))),a},_precisionOf:function(a){var b=a.toString(),c=b.indexOf(".");return c===-1?0:b.length-c-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshValue:function(){var b,c,d,e,f,g=this.options.range,h=this.options,i=this,j=!this._animateOff&&h.animate,k={};this.options.values&&this.options.values.length?this.handles.each(function(d){c=(i.values(d)-i._valueMin())/(i._valueMax()-i._valueMin())*100,k["horizontal"===i.orientation?"left":"bottom"]=c+"%",a(this).stop(1,1)[j?"animate":"css"](k,h.animate),i.options.range===!0&&("horizontal"===i.orientation?(0===d&&i.range.stop(1,1)[j?"animate":"css"]({left:c+"%"},h.animate),1===d&&i.range[j?"animate":"css"]({width:c-b+"%"},{queue:!1,duration:h.animate})):(0===d&&i.range.stop(1,1)[j?"animate":"css"]({bottom:c+"%"},h.animate),1===d&&i.range[j?"animate":"css"]({height:c-b+"%"},{queue:!1,duration:h.animate}))),b=c}):(d=this.value(),e=this._valueMin(),f=this._valueMax(),c=f!==e?(d-e)/(f-e)*100:0,k["horizontal"===this.orientation?"left":"bottom"]=c+"%",this.handle.stop(1,1)[j?"animate":"css"](k,h.animate),"min"===g&&"horizontal"===this.orientation&&this.range.stop(1,1)[j?"animate":"css"]({width:c+"%"},h.animate),"max"===g&&"horizontal"===this.orientation&&this.range[j?"animate":"css"]({width:100-c+"%"},{queue:!1,duration:h.animate}),"min"===g&&"vertical"===this.orientation&&this.range.stop(1,1)[j?"animate":"css"]({height:c+"%"},h.animate),"max"===g&&"vertical"===this.orientation&&this.range[j?"animate":"css"]({height:100-c+"%"},{queue:!1,duration:h.animate}))},_handleEvents:{keydown:function(b){var c,d,e,f,g=a(b.target).data("ui-slider-handle-index");switch(b.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.PAGE_UP:case a.ui.keyCode.PAGE_DOWN:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(b.preventDefault(),!this._keySliding&&(this._keySliding=!0,a(b.target).addClass("ui-state-active"),c=this._start(b,g),c===!1))return}switch(f=this.options.step,d=e=this.options.values&&this.options.values.length?this.values(g):this.value(),b.keyCode){case a.ui.keyCode.HOME:e=this._valueMin();break;case a.ui.keyCode.END:e=this._valueMax();break;case a.ui.keyCode.PAGE_UP:e=this._trimAlignValue(d+(this._valueMax()-this._valueMin())/this.numPages);break;case a.ui.keyCode.PAGE_DOWN:e=this._trimAlignValue(d-(this._valueMax()-this._valueMin())/this.numPages);break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(d===this._valueMax())return;e=this._trimAlignValue(d+f);break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(d===this._valueMin())return;e=this._trimAlignValue(d-f)}this._slide(b,g,e)},keyup:function(b){var c=a(b.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(b,c),this._change(b,c),a(b.target).removeClass("ui-state-active"))}}})}); // source --> http://www.asmwebtech.com/wp-content/plugins/font/js/colorpicker.js?ver=4.7.5 /** * * Color picker * Author: Stefan Petre www.eyecon.ro * * Dual licensed under the MIT and GPL licenses * */ (function ($) { var ColorPicker = function () { var charMin = 65, tpl = '
    ', defaults = { eventName: 'click', onShow: function () {}, onBeforeShow: function () {}, onHide: function () {}, onChange: function () {}, onSubmit: function () {}, color: 'ff0000', livePreview: true, flat: false }, fillRGBFields = function (hsb, cal) { var rgb = HSBToRGB(hsb); $(cal).data('colorpicker').fields .eq(1).val(rgb.r).end() .eq(2).val(rgb.g).end() .eq(3).val(rgb.b).end(); }, fillHSBFields = function (hsb, cal) { $(cal).data('colorpicker').fields .eq(4).val(hsb.h).end() .eq(5).val(hsb.s).end() .eq(6).val(hsb.b).end(); }, fillHexFields = function (hsb, cal) { $(cal).data('colorpicker').fields .eq(0).val(HSBToHex(hsb)).end(); }, setSelector = function (hsb, cal) { $(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({ h: hsb.h, s: 100, b: 100 })); $(cal).data('colorpicker').selectorIndic.css({ left: parseInt(150 * hsb.s / 100, 10), top: parseInt(150 * (100 - hsb.b) / 100, 10) }); }, setHue = function (hsb, cal) { $(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h / 360, 10)); }, setCurrentColor = function (hsb, cal) { $(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb)); }, setNewColor = function (hsb, cal) { $(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb)); }, keyDown = function (ev) { var pressedKey = ev.charCode || ev.keyCode || -1; if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) { return false; } var cal = $(this).parent().parent(); if (cal.data('colorpicker').livePreview === true) { change.apply(this); } }, change = function (ev) { var cal = $(this).parent().parent(), col; if (this.parentNode.className.indexOf('_hex') > 0) { cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value)); } else if (this.parentNode.className.indexOf('_hsb') > 0) { cal.data('colorpicker').color = col = fixHSB({ h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10), s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10), b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10) }); } else { cal.data('colorpicker').color = col = RGBToHSB(fixRGB({ r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10), g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10), b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10) })); } if (ev) { fillRGBFields(col, cal.get(0)); fillHexFields(col, cal.get(0)); fillHSBFields(col, cal.get(0)); } setSelector(col, cal.get(0)); setHue(col, cal.get(0)); setNewColor(col, cal.get(0)); cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]); }, blur = function (ev) { var cal = $(this).parent().parent(); cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus'); }, focus = function () { charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65; $(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus'); $(this).parent().addClass('colorpicker_focus'); }, downIncrement = function (ev) { var field = $(this).parent().find('input').focus(); var current = { el: $(this).parent().addClass('colorpicker_slider'), max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255), y: ev.pageY, field: field, val: parseInt(field.val(), 10), preview: $(this).parent().parent().data('colorpicker').livePreview }; $(document).bind('mouseup', current, upIncrement); $(document).bind('mousemove', current, moveIncrement); }, moveIncrement = function (ev) { ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10)))); if (ev.data.preview) { change.apply(ev.data.field.get(0), [true]); } return false; }, upIncrement = function (ev) { change.apply(ev.data.field.get(0), [true]); ev.data.el.removeClass('colorpicker_slider').find('input').focus(); $(document).unbind('mouseup', upIncrement); $(document).unbind('mousemove', moveIncrement); return false; }, downHue = function (ev) { var current = { cal: $(this).parent(), y: $(this).offset().top }; current.preview = current.cal.data('colorpicker').livePreview; $(document).bind('mouseup', current, upHue); $(document).bind('mousemove', current, moveHue); }, moveHue = function (ev) { change.apply( ev.data.cal.data('colorpicker') .fields .eq(4) .val(parseInt(360 * (150 - Math.max(0, Math.min(150, (ev.pageY - ev.data.y)))) / 150, 10)) .get(0), [ev.data.preview] ); return false; }, upHue = function (ev) { fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); $(document).unbind('mouseup', upHue); $(document).unbind('mousemove', moveHue); return false; }, downSelector = function (ev) { var current = { cal: $(this).parent(), pos: $(this).offset() }; current.preview = current.cal.data('colorpicker').livePreview; $(document).bind('mouseup', current, upSelector); $(document).bind('mousemove', current, moveSelector); }, moveSelector = function (ev) { change.apply( ev.data.cal.data('colorpicker') .fields .eq(6) .val(parseInt(100 * (150 - Math.max(0, Math.min(150, (ev.pageY - ev.data.pos.top)))) / 150, 10)) .end() .eq(5) .val(parseInt(100 * (Math.max(0, Math.min(150, (ev.pageX - ev.data.pos.left)))) / 150, 10)) .get(0), [ev.data.preview] ); return false; }, upSelector = function (ev) { fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); $(document).unbind('mouseup', upSelector); $(document).unbind('mousemove', moveSelector); return false; }, enterSubmit = function (ev) { $(this).addClass('colorpicker_focus'); }, leaveSubmit = function (ev) { $(this).removeClass('colorpicker_focus'); }, clickSubmit = function (ev) { var cal = $(this).parent(); var col = cal.data('colorpicker').color; cal.data('colorpicker').origColor = col; setCurrentColor(col, cal.get(0)); cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el); }, show = function (ev) { var cal = $('#' + $(this).data('colorpickerId')); cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]); var pos = $(this).offset(); var viewPort = getViewport(); var top = pos.top + this.offsetHeight; var left = pos.left; if (top + 176 > viewPort.t + viewPort.h) { top -= this.offsetHeight + 176; } if (left + 356 > viewPort.l + viewPort.w) { left -= 356; } cal.css({ left: left + 'px', top: top + 'px' }); if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) { cal.show(); } $(document).bind('mousedown', { cal: cal }, hide); return false; }, hide = function (ev) { if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) { if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) { ev.data.cal.hide(); } $(document).unbind('mousedown', hide); } }, isChildOf = function (parentEl, el, container) { if (parentEl == el) { return true; } if (parentEl.contains) { return parentEl.contains(el); } if (parentEl.compareDocumentPosition) { return !!(parentEl.compareDocumentPosition(el) & 16); } var prEl = el.parentNode; while (prEl && prEl != container) { if (prEl == parentEl) return true; prEl = prEl.parentNode; } return false; }, getViewport = function () { var m = document.compatMode == 'CSS1Compat'; return { l: window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft), t: window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop), w: window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth), h: window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight) }; }, fixHSB = function (hsb) { return { h: Math.min(360, Math.max(0, hsb.h)), s: Math.min(100, Math.max(0, hsb.s)), b: Math.min(100, Math.max(0, hsb.b)) }; }, fixRGB = function (rgb) { return { r: Math.min(255, Math.max(0, rgb.r)), g: Math.min(255, Math.max(0, rgb.g)), b: Math.min(255, Math.max(0, rgb.b)) }; }, fixHex = function (hex) { var len = 6 - hex.length; if (len > 0) { var o = []; for (var i = 0; i < len; i++) { o.push('0'); } o.push(hex); hex = o.join(''); } return hex; }, HexToRGB = function (hex) { var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16); return { r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF) }; }, HexToHSB = function (hex) { return RGBToHSB(HexToRGB(hex)); }, RGBToHSB = function (rgb) { var hsb = { h: 0, s: 0, b: 0 }; var min = Math.min(rgb.r, rgb.g, rgb.b); var max = Math.max(rgb.r, rgb.g, rgb.b); var delta = max - min; hsb.b = max; hsb.s = max != 0 ? 255 * delta / max : 0; if (hsb.s != 0) { if (rgb.r == max) { hsb.h = (rgb.g - rgb.b) / delta; } else if (rgb.g == max) { hsb.h = 2 + (rgb.b - rgb.r) / delta; } else { hsb.h = 4 + (rgb.r - rgb.g) / delta; } } else { hsb.h = -1; } hsb.h *= 60; if (hsb.h < 0) { hsb.h += 360; } hsb.s *= 100 / 255; hsb.b *= 100 / 255; return hsb; }, HSBToRGB = function (hsb) { var rgb = {}; var h = Math.round(hsb.h); var s = Math.round(hsb.s * 255 / 100); var v = Math.round(hsb.b * 255 / 100); if (s == 0) { rgb.r = rgb.g = rgb.b = v; } else { var t1 = v; var t2 = (255 - s) * v / 255; var t3 = (t1 - t2) * (h % 60) / 60; if (h == 360) h = 0; if (h < 60) { rgb.r = t1; rgb.b = t2; rgb.g = t2 + t3; } else if (h < 120) { rgb.g = t1; rgb.b = t2; rgb.r = t1 - t3; } else if (h < 180) { rgb.g = t1; rgb.r = t2; rgb.b = t2 + t3; } else if (h < 240) { rgb.b = t1; rgb.r = t2; rgb.g = t1 - t3; } else if (h < 300) { rgb.b = t1; rgb.g = t2; rgb.r = t2 + t3; } else if (h < 360) { rgb.r = t1; rgb.g = t2; rgb.b = t1 - t3; } else { rgb.r = 0; rgb.g = 0; rgb.b = 0; } } return { r: Math.round(rgb.r), g: Math.round(rgb.g), b: Math.round(rgb.b) }; }, RGBToHex = function (rgb) { var hex = [ rgb.r.toString(16), rgb.g.toString(16), rgb.b.toString(16) ]; $.each(hex, function (nr, val) { if (val.length == 1) { hex[nr] = '0' + val; } }); return hex.join(''); }, HSBToHex = function (hsb) { return RGBToHex(HSBToRGB(hsb)); }, restoreOriginal = function () { var cal = $(this).parent(); var col = cal.data('colorpicker').origColor; cal.data('colorpicker').color = col; fillRGBFields(col, cal.get(0)); fillHexFields(col, cal.get(0)); fillHSBFields(col, cal.get(0)); setSelector(col, cal.get(0)); setHue(col, cal.get(0)); setNewColor(col, cal.get(0)); }; return { init: function (opt) { opt = $.extend({}, defaults, opt || {}); if (typeof opt.color == 'string') { opt.color = HexToHSB(opt.color); } else if (opt.color.r !== undefined && opt.color.g !== undefined && opt.color.b !== undefined) { opt.color = RGBToHSB(opt.color); } else if (opt.color.h !== undefined && opt.color.s !== undefined && opt.color.b !== undefined) { opt.color = fixHSB(opt.color); } else { return this; } return this.each(function () { if (!$(this).data('colorpickerId')) { var options = $.extend({}, opt); options.origColor = opt.color; var id = 'collorpicker_' + parseInt(Math.random() * 1000); $(this).data('colorpickerId', id); var cal = $(tpl).attr('id', id); if (options.flat) { cal.appendTo(this).show(); } else { cal.appendTo(document.body); } options.fields = cal .find('input') .bind('keyup', keyDown) .bind('change', change) .bind('blur', blur) .bind('focus', focus); cal .find('span').bind('mousedown', downIncrement).end() .find('>div.colorpicker_current_color').bind('click', restoreOriginal); options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector); options.selectorIndic = options.selector.find('div div'); options.el = this; options.hue = cal.find('div.colorpicker_hue div'); cal.find('div.colorpicker_hue').bind('mousedown', downHue); options.newColor = cal.find('div.colorpicker_new_color'); options.currentColor = cal.find('div.colorpicker_current_color'); cal.data('colorpicker', options); cal.find('div.colorpicker_submit') .bind('mouseenter', enterSubmit) .bind('mouseleave', leaveSubmit) .bind('click', clickSubmit); fillRGBFields(options.color, cal.get(0)); fillHSBFields(options.color, cal.get(0)); fillHexFields(options.color, cal.get(0)); setHue(options.color, cal.get(0)); setSelector(options.color, cal.get(0)); setCurrentColor(options.color, cal.get(0)); setNewColor(options.color, cal.get(0)); if (options.flat) { cal.css({ position: 'relative', display: 'block' }); } else { $(this).bind(options.eventName, show); } } }); }, showPicker: function () { return this.each(function () { if ($(this).data('colorpickerId')) { show.apply(this); } }); }, hidePicker: function () { return this.each(function () { if ($(this).data('colorpickerId')) { $('#' + $(this).data('colorpickerId')).hide(); } }); }, setColor: function (col) { if (typeof col == 'string') { col = HexToHSB(col); } else if (col.r !== undefined && col.g !== undefined && col.b !== undefined) { col = RGBToHSB(col); } else if (col.h !== undefined && col.s !== undefined && col.b !== undefined) { col = fixHSB(col); } else { return this; } return this.each(function () { if ($(this).data('colorpickerId')) { var cal = $('#' + $(this).data('colorpickerId')); cal.data('colorpicker').color = col; cal.data('colorpicker').origColor = col; fillRGBFields(col, cal.get(0)); fillHSBFields(col, cal.get(0)); fillHexFields(col, cal.get(0)); setHue(col, cal.get(0)); setSelector(col, cal.get(0)); setCurrentColor(col, cal.get(0)); setNewColor(col, cal.get(0)); } }); } }; }(); $.fn.extend({ ColorPicker: ColorPicker.init, ColorPickerHide: ColorPicker.hidePicker, ColorPickerShow: ColorPicker.showPicker, ColorPickerSetColor: ColorPicker.setColor }); })(jQuery); // source --> http://www.asmwebtech.com/wp-includes/js/jquery/ui/sortable.min.js?ver=1.11.4 /*! * jQuery UI Sortable 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/sortable/ */ !function(a){"function"==typeof define&&define.amd?define(["jquery","./core","./mouse","./widget"],a):a(jQuery)}(function(a){return a.widget("ui.sortable",a.ui.mouse,{version:"1.11.4",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(a,b,c){return a>=b&&a=0;a--)this.items[a].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(b,c){var d=null,e=!1,f=this;return!this.reverting&&(!this.options.disabled&&"static"!==this.options.type&&(this._refreshItems(b),a(b.target).parents().each(function(){if(a.data(this,f.widgetName+"-item")===f)return d=a(this),!1}),a.data(b.target,f.widgetName+"-item")===f&&(d=a(b.target)),!!d&&(!(this.options.handle&&!c&&(a(this.options.handle,d).find("*").addBack().each(function(){this===b.target&&(e=!0)}),!e))&&(this.currentItem=d,this._removeCurrentsFromItems(),!0))))},_mouseStart:function(b,c,d){var e,f,g=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(b),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,g.cursorAt&&this._adjustOffsetFromHelper(g.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),g.containment&&this._setContainment(),g.cursor&&"auto"!==g.cursor&&(f=this.document.find("body"),this.storedCursor=f.css("cursor"),f.css("cursor",g.cursor),this.storedStylesheet=a("").appendTo(f)),g.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",g.opacity)),g.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",g.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",b,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!d)for(e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("activate",b,this._uiHash(this));return a.ui.ddmanager&&(a.ui.ddmanager.current=this),a.ui.ddmanager&&!g.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(b),!0},_mouseDrag:function(b){var c,d,e,f,g=this.options,h=!1;for(this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-b.pageY=0;c--)if(d=this.items[c],e=d.item[0],f=this._intersectsWithPointer(d),f&&d.instance===this.currentContainer&&!(e===this.currentItem[0]||this.placeholder[1===f?"next":"prev"]()[0]===e||a.contains(this.placeholder[0],e)||"semi-dynamic"===this.options.type&&a.contains(this.element[0],e))){if(this.direction=1===f?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(d))break;this._rearrange(b,d),this._trigger("change",b,this._uiHash());break}return this._contactContainers(b),a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),this._trigger("sort",b,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(b,c){if(b){if(a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,b),this.options.revert){var d=this,e=this.placeholder.offset(),f=this.options.axis,g={};f&&"x"!==f||(g.left=e.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),f&&"y"!==f||(g.top=e.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,a(this.helper).animate(g,parseInt(this.options.revert,10)||500,function(){d._clear(b)})}else this._clear(b,c);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--)this.containers[b]._trigger("deactivate",null,this._uiHash(this)),this.containers[b].containerCache.over&&(this.containers[b]._trigger("out",null,this._uiHash(this)),this.containers[b].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),a.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},a(c).each(function(){var c=(a(b.item||this).attr(b.attribute||"id")||"").match(b.expression||/(.+)[\-=_](.+)/);c&&d.push((b.key||c[1]+"[]")+"="+(b.key&&b.expression?c[1]:c[2]))}),!d.length&&b.key&&d.push(b.key+"="),d.join("&")},toArray:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},c.each(function(){d.push(a(b.item||this).attr(b.attribute||"id")||"")}),d},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height,f=a.left,g=f+a.width,h=a.top,i=h+a.height,j=this.offset.click.top,k=this.offset.click.left,l="x"===this.options.axis||d+j>h&&d+jf&&b+ka[this.floating?"width":"height"]?n:f0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return 0!==a&&(a>0?"right":"left")},refresh:function(a){return this._refreshItems(a),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var a=this.options;return a.connectWith.constructor===String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(b){function c(){h.push(this)}var d,e,f,g,h=[],i=[],j=this._connectWith();if(j&&b)for(d=j.length-1;d>=0;d--)for(f=a(j[d],this.document[0]),e=f.length-1;e>=0;e--)g=a.data(f[e],this.widgetFullName),g&&g!==this&&!g.options.disabled&&i.push([a.isFunction(g.options.items)?g.options.items.call(g.element):a(g.options.items,g.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),g]);for(i.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),d=i.length-1;d>=0;d--)i[d][0].each(c);return a(h)},_removeCurrentsFromItems:function(){var b=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=a.grep(this.items,function(a){for(var c=0;c=0;c--)for(e=a(m[c],this.document[0]),d=e.length-1;d>=0;d--)f=a.data(e[d],this.widgetFullName),f&&f!==this&&!f.options.disabled&&(l.push([a.isFunction(f.options.items)?f.options.items.call(f.element[0],b,{item:this.currentItem}):a(f.options.items,f.element),f]),this.containers.push(f));for(c=l.length-1;c>=0;c--)for(g=l[c][1],h=l[c][0],d=0,j=h.length;d=0;c--)d=this.items[c],d.instance!==this.currentContainer&&this.currentContainer&&d.item[0]!==this.currentItem[0]||(e=this.options.toleranceElement?a(this.options.toleranceElement,d.item):d.item,b||(d.width=e.outerWidth(),d.height=e.outerHeight()),f=e.offset(),d.left=f.left,d.top=f.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(c=this.containers.length-1;c>=0;c--)f=this.containers[c].element.offset(),this.containers[c].containerCache.left=f.left,this.containers[c].containerCache.top=f.top,this.containers[c].containerCache.width=this.containers[c].element.outerWidth(),this.containers[c].containerCache.height=this.containers[c].element.outerHeight();return this},_createPlaceholder:function(b){b=b||this;var c,d=b.options;d.placeholder&&d.placeholder.constructor!==String||(c=d.placeholder,d.placeholder={element:function(){var d=b.currentItem[0].nodeName.toLowerCase(),e=a("<"+d+">",b.document[0]).addClass(c||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tbody"===d?b._createTrPlaceholder(b.currentItem.find("tr").eq(0),a("",b.document[0]).appendTo(e)):"tr"===d?b._createTrPlaceholder(b.currentItem,e):"img"===d&&e.attr("src",b.currentItem.attr("src")),c||e.css("visibility","hidden"),e},update:function(a,e){c&&!d.forcePlaceholderSize||(e.height()||e.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10)),e.width()||e.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10)))}}),b.placeholder=a(d.placeholder.element.call(b.element,b.currentItem)),b.currentItem.after(b.placeholder),d.placeholder.update(b,b.placeholder)},_createTrPlaceholder:function(b,c){var d=this;b.children().each(function(){a(" ",d.document[0]).attr("colspan",a(this).attr("colspan")||1).appendTo(c)})},_contactContainers:function(b){var c,d,e,f,g,h,i,j,k,l,m=null,n=null;for(c=this.containers.length-1;c>=0;c--)if(!a.contains(this.currentItem[0],this.containers[c].element[0]))if(this._intersectsWith(this.containers[c].containerCache)){if(m&&a.contains(this.containers[c].element[0],m.element[0]))continue;m=this.containers[c],n=c}else this.containers[c].containerCache.over&&(this.containers[c]._trigger("out",b,this._uiHash(this)),this.containers[c].containerCache.over=0);if(m)if(1===this.containers.length)this.containers[n].containerCache.over||(this.containers[n]._trigger("over",b,this._uiHash(this)),this.containers[n].containerCache.over=1);else{for(e=1e4,f=null,k=m.floating||this._isFloating(this.currentItem),g=k?"left":"top",h=k?"width":"height",l=k?"clientX":"clientY",d=this.items.length-1;d>=0;d--)a.contains(this.containers[n].element[0],this.items[d].item[0])&&this.items[d].item[0]!==this.currentItem[0]&&(i=this.items[d].item.offset()[g],j=!1,b[l]-i>this.items[d][h]/2&&(j=!0),Math.abs(b[l]-i)this.containment[2]&&(f=this.containment[2]+this.offset.click.left),b.pageY-this.offset.click.top>this.containment[3]&&(g=this.containment[3]+this.offset.click.top)),e.grid&&(c=this.originalPageY+Math.round((g-this.originalPageY)/e.grid[1])*e.grid[1],g=this.containment?c-this.offset.click.top>=this.containment[1]&&c-this.offset.click.top<=this.containment[3]?c:c-this.offset.click.top>=this.containment[1]?c-e.grid[1]:c+e.grid[1]:c,d=this.originalPageX+Math.round((f-this.originalPageX)/e.grid[0])*e.grid[0],f=this.containment?d-this.offset.click.left>=this.containment[0]&&d-this.offset.click.left<=this.containment[2]?d:d-this.offset.click.left>=this.containment[0]?d-e.grid[0]:d+e.grid[0]:d)),{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():i?0:h.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():i?0:h.scrollLeft())}},_rearrange:function(a,b,c,d){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?b.item[0]:b.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var e=this.counter;this._delay(function(){e===this.counter&&this.refreshPositions(!d)})},_clear:function(a,b){function c(a,b,c){return function(d){c._trigger(a,d,b._uiHash(b))}}this.reverting=!1;var d,e=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(d in this._storedCSS)"auto"!==this._storedCSS[d]&&"static"!==this._storedCSS[d]||(this._storedCSS[d]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!b&&e.push(function(a){this._trigger("receive",a,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||b||e.push(function(a){this._trigger("update",a,this._uiHash())}),this!==this.currentContainer&&(b||(e.push(function(a){this._trigger("remove",a,this._uiHash())}),e.push(function(a){return function(b){a._trigger("receive",b,this._uiHash(this))}}.call(this,this.currentContainer)),e.push(function(a){return function(b){a._trigger("update",b,this._uiHash(this))}}.call(this,this.currentContainer)))),d=this.containers.length-1;d>=0;d--)b||e.push(c("deactivate",this,this.containers[d])),this.containers[d].containerCache.over&&(e.push(c("out",this,this.containers[d])),this.containers[d].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,b||this._trigger("beforeStop",a,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!b){for(d=0;d http://www.asmwebtech.com/wp-content/plugins/font/js/jquery.fontPlugin.js?pver=7.5.1&ver=4.7.5 //font control panel plugin (function ($) { /*globals document, setTimeout, setInterval, clearTimeout, window, alert, prompt, confirm, navigator, jQuery, console, $, ajaxproxy, location, tinyMCE, fontBlogUrl, fontBlogName, clearInterval, fontPluginVersion, ajaxproxy, ajaxproxy2, ajaxproxy3*/ $.fontPlugin = function (el, options) { var self = this; self.$el = $(el); self.el = el; self.baseSelector = '#' + self.$el.attr('id'); self.$el.data('fontPlugin', self); //modal windows array self.modals = []; self.options = options; self.options = $.extend({}, $.fontPlugin.defaultOptions, self.options); self.version = fontPluginVersion; self.settingFields = []; self.effectSliders = []; /* Initialize */ self.init = function () { self.detectMode(); self.showLoading(); self.loadSettings(); if (!$.fn.on) { alert('WARNING: You are using an old Wordpress version. It is not guaranteed that the plugin will work. The oldest tested Wordpress version is 3.1 but at least 3.3.1 is recommended.'); } }; /* * * MARKUP * */ /* * Create presets panel */ self.createPresetsPanel = function () { var i, presetName, presetId, field, paramObj, upgrade, modalOptions, modal; /* PRESETS */ modalOptions = { id: 'presetsPanel', name: 'stdSettings', title: 'Font ' + self.version, nobar: false, left: '10px', top: '50px', width: '98px', show: true }; modal = self.createNewModal(modalOptions); modal.show(); self.$presets = modal; //add presets list self.settingFields.presets = $('
    '); self.$presetsDropdown = self.settingFields.presets.find('select'); self.$presets.append(self.settingFields.presets); self.$presetsDropdown.bind('change', function () { self.loadPreset($(this).val()); self.scrollToSelection(); }); //populate presets list for (i = 0; i < self.options.presets.length; i += 1) { presetName = self.options.presets[i].name; presetId = i; self.$presetsDropdown.append(''); } // Delete current preset self.settingFields.deletePreset = $(''); self.settingFields.presets.append(self.settingFields.deletePreset); self.settingFields.deletePreset.on('click', function () { self.deleteCurrentPreset(); }); // Rename current preset self.settingFields.renamePreset = $(''); self.settingFields.presets.append(self.settingFields.renamePreset); self.settingFields.renamePreset.on('click', function () { self.renamePreset(); }); }; /** Like? Yes or No **/ self.addLikeYesNo = function () { //add like not/like self.$yesno = $('
    '); self.$yesno.appendTo(self.$actions); self.$yesno.css({ 'color': '#fff', 'font-size': '10px', 'text-align': 'right', 'font-weight': 'bold', 'float': 'left', 'margin-right': '10px' }); self.$yesno.find('a').css({ 'font-size': '10px', 'color': '#fff' }); }; /* * Create appearance panel - size and color * * @returns {unresolved} */ self.createAppearancePanel = function () { var i, presetName, presetId, field, paramObj, saveButton, upgrade, modalOptions, modal, settingWindows; /* SELECTORS */ //get standard fields in a new window modalOptions = { id: 'appearancePanel', name: 'stdSettings', title: 'Size and color settings', left: '0', top: '0px', width: '100%', nobar: true, show: true }; modal = self.createNewModal(modalOptions); self.$apr = modal; self.$apr.hide(); //create a fieldset self.$standardFields = $('
    ').appendTo(modal); //get standard fields in a new window modalOptions = { title: 'Extended settings', left: '0', top: '0' }; modal = self.createNewModal(modalOptions); self.$extendedFields = $('
    ').appendTo(modal); //get extended fields not ready /*var switcher = $('Load extended fields from FontsForWeb.com').appendTo(self.$apr); self.$extendedFields.hide(); switcher.on('click', function () { self.$extendedFields.slideToggle(); self.loadExtendedFields(); return false; });*/ /* Add all setting fields */ for (i = 0; i < self.options.settingFields.length; i += 1) { field = self.options.settingFields[i]; paramObj = {}; paramObj.field = field; paramObj.type = 'lite'; self.addSettingsField(paramObj); } //add window opening buttons settingWindows = $('
    '); //bind toggle modal $('body').on('click', '.toggleModal', function () { if (self.mode === 'global') { var selector = self.currentPreset.selector; if (selector.indexOf('ELEMENT NOW') != -1 || selector.indexOf('PICK ELEMENT') != -1) { alert('First pick an element from the page to customize it.'); return; } } else if (self.mode === 'postPage') { //VERSION FOR POST PAGE //get selection var selection = tinyMCE.activeEditor.selection.getContent(); //only apply if something is selected if (!selection) { alert('Make a selection in the editor window first.'); return; } } var modalName = $(this).attr('data-modal-name'); self.toggleModal(modalName); }); $('body').on('mousedown click', '.getApiKey', function () { $(this).attr('href', 'http://fontsforweb.com/purchase?url=' + fontBlogUrl); $(this).attr('target', '_blank'); }); //add keyup to change field self.getField('selector').bind('keyup', function () { $(this).trigger('change'); self.hoverSelector = self.currentPreset.selector; self.hoverHighlightCurrent(); }); }; self.createActionButtons = function () { var saveButton, actions, closeMod; //add buttons fieldset actions = $('
    '); closeMod = $('x'); actions.append(closeMod); self.$actions = actions; closeMod.click(function () { self.$presets.hide(); self.$apr.hide(); }); //add different fields buttons var fontfaceSettings = $('').prependTo(self.$apr); //add actions fontfaceSettings.on('click', function () { if (self.mode === 'global') { var selector = self.currentPreset.selector; if (selector.indexOf('ELEMENT NOW') !== -1 || selector.indexOf('PICK ELEMENT') !== -1) { alert('First pick an element from the page to customize it.'); return; } } else if (self.mode === 'postPage') { //VERSION FOR POST PAGE //get selection var selection = tinyMCE.activeEditor.selection.getContent(); //only apply if something is selected if (!selection) { alert('Make a selection in the editor window first.'); return; } } self.showFontsBrowser(); }); // PRO settings window var proSettings = $('Pro settings').appendTo(self.$apr); // extra fields var extrafieldsSettings = $('').appendTo(self.$apr); // hide extra fields extrafieldsSettings.hide(); // effects button var effects = $('').appendTo(self.$apr); // styles button var styles = $('').appendTo(self.$apr); //add save button saveButton = $('').appendTo(actions); saveButton.click(function (e) { // blink few fimes saveButton.fadeTo(500, 0.3).fadeTo(500, 1).fadeTo(500, 0.3).fadeTo(500, 1).fadeTo(500, 0.3).fadeTo(500, 1).fadeTo(500, 0.3).fadeTo(500, 1).fadeTo(500, 0.3).fadeTo(500, 1); //unbind click saveButton.unbind('click'); saveButton.css({ 'cursor': 'wait' }); self.saveSettings(); }); self.$apr.append(actions); }; /* * API FUNCTIONS */ /* * check if api key is present in the database */ self.checkForApikey = function () { self.xhrPost({ url: self.options.FFW_baseUrl + '/api/getkey', data: { blogurl: fontBlogUrl, apikey: self.options.apikey, version: self.version } }, function (data) { if (!data || data.success !== 'true') { if (console !== undefined) { console.log(data.message); } alert('An error has occured and the plugin is not working. If you\'re working on local server, make sure \n that your computer has an internet connection.'); } else { if(data.keytype === 'FREE' && self.loaded === true) { return; } self.loadEffectsPanel(data.effects); if (data.extended.length) { self.loadExtendedFields(data.extended); $('#upgradeToProButton').remove(); $('#extrafieldsSettings').show(); clearInterval(self.checkForApikeyInterval); } self.loadStylesPanel(data.styles); self.options.apikey = data.apikey; self.loaded = true; } }); }; //setup api key interval self.setupApikeyCheckingInterval = function () { if (!self.checkForApikeyInterval) { self.checkForApikeyInterval = setInterval(function () { self.checkForApikey(); }, 5000); } }; /* * SETTINGS - SAVE AND LOAD */ /* * Load settings from wordpress options */ self.loadSettings = function () { var data = { action: 'get_font_settings' }; $.ajax({ type: "POST", url: ajaxproxy, data: data, success: function (response) { // json is coming parsed so no $.parseJSON(response); try { response = $.parseJSON(response); } catch (e) { self.tryAnotherAjaxproxy(); return; } //console.log(self.options); if (response && response.settingFields) { self.options = $.extend({}, response, self.options); } else { self.tryAnotherAjaxproxy(); return; } self.loadConfig(); }, error: function (response) { self.tryAnotherAjaxproxy(); } }); }; self.tryAnotherAjaxproxy = function () { alert('Sorry, but the plugin couldn\'t start. Please contact your server administrator to allow AJAX use. Power users: Use console (F12 in Chrome) to see what else could be the problem.'); return; /*if (ajaxproxy === ajaxproxy3) { alert('Sorry, but the plugin couldn\'t start. Please contact your server administrator to allow AJAX use. Power users: Use console (F12 in Chrome) to see what else could be the problem.'); return; } else if (ajaxproxy === ajaxproxy2) { ajaxproxy = ajaxproxy3; } else { ajaxproxy = ajaxproxy2; }*/ self.loadSettings(); }; /** * * continue loading with config file * **/ self.loadConfig = function () { // try loading the plugin try { //console.log(self.options); self.hideLoading(); // markup self.createPresetsPanel(); self.createAppearancePanel(); self.createActionButtons(); self.loadPreset(0); self.bindShowCategoriesAction(); self.bindShowFontsAction(); self.bindLinkOverlay(); self.setFontOnclick(); self.initUploadForm(); self.adaptOptionsToMode(); self.addLikeYesNo(); self.checkForApikey(); if (self.options.presets && self.options.presets[1]) { self.loadPreset(1); } } catch (e) { console.dir(e); alert('The plugin will not work'); } }, /* * Save settings by ajax * * @returns {unresolved} */ self.saveSettings = function () { var savingOptions = {}, data; if (self.mode === 'postPage') { alert('Click on "Update" or "Publish" to save'); return; } self.$presets.hide(); self.$apr.hide(); self.showLoading(); savingOptions.settingFields = self.options.settingFields; savingOptions.presets = self.options.presets; savingOptions.apikey = self.options.apikey; data = { action: 'set_font_settings', fontPluginSettings: JSON.stringify(savingOptions) }; $.post(ajaxproxy, data, function (response) { if (response.success !== 'true') { alert('Error: ' + response.message); return; } else { window.onbeforeunload = null; location.reload(true); } }, 'json').error(function (xhr, textStatus, errorThrown) { alert("Unknown error: \n" + xhr.responseText); }); }; //update internal settings - value self.updateSettings = function (settingName, value) { if (self.mode !== 'global') { return; } self.options.presets[self.currentPresetNo][settingName] = value; }; //update internal settings - css value self.updateCssSettings = function (settingName, value) { if (self.mode !== 'global') { return; } self.options.presets[self.currentPresetNo].styles[settingName] = value; }; /* update selected element CSS global - update element from selector postPage - update selected text */ self.updateSelectedElement = function (settingName, value) { var selection, selector, selectorValid, $selectorContents, element, node, justInsertedClass, newSpan, newHTML, inserted, $tempDiv; if (!value || value == 'px') return; if (self.mode === 'global') { //VERSION FOR GENERAL SETTINGS PAGE selector = self.currentPreset.selector; //exit when default selector if (selector.indexOf('ELEMENT NOW') != -1 || selector.indexOf('PICK ELEMENT') != -1) { return; } //get the element from iframe or current page if ($('#header1preview').length) { element = $('#header1preview').contents().find(selector); } else { element = $(selector); } element.each(function () { //CSS exceptions and general action switch (settingName) { case 'rotate': $(this).style('-webkit-transform', 'rotate(' + value + 'deg)', 'important'); $(this).style('-moz-transform', 'rotate(' + value + 'deg)', 'important'); $(this).style('-o-transform', 'rotate(' + value + 'deg)', 'important'); $(this).style('-ms-transform', 'rotate(' + value + 'deg)', 'important'); $(this).style('transform', 'rotate(' + value + 'deg)', 'important'); break; //general action default: $(this).style(settingName, value, 'important'); } }); } else if (self.mode === 'postPage') { //VERSION FOR POST PAGE //get selection selection = tinyMCE.activeEditor.selection.getContent(); //only apply if something is selected if (!selection) { return; } //selectorValid - validate selector created from selected text. //required because for example "." with nothing following breaks function execution selectorValid = true; try { $selectorContents = $(selection); } catch (e) { selectorValid = false; } if (selectorValid && $selectorContents.length > 1) { selectorValid = false; } //get node node = tinyMCE.activeEditor.selection.getNode(); if (selectorValid && ($.trim($(node).html()) === $.trim(selection) || $.trim($(node).html()) === $.trim($(selection).html()))) { //console.log('already isolated'); tinyMCE.activeEditor.dom.setStyle(node, settingName, value); } else { //console.log('isolating: ' + $(node).html() + ' - ' + selection); justInsertedClass = 'inserted' + Math.floor(Math.random() * 10000); newSpan = $('' + selection + ''); newSpan.css(settingName, value); $tempDiv = $('
    ').append(newSpan.clone()); $tempDiv.find('*').each(function () { //if ($(this).inlineStyle && $(this).inlineStyle(settingName)) { $(this).css(settingName, value); //} }); //get span html together with span itself newHTML = $tempDiv.html(); inserted = tinyMCE.activeEditor.selection.setContent(newHTML); tinyMCE.activeEditor.selection.select(tinyMCE.activeEditor.dom.select('span#' + justInsertedClass)[0]); } } }; /* * * FIELDS * */ /* * Load extended fields */ self.loadExtendedFields = function (data) { var i, field, paramObj, modalOptions, modal; //create a new modal for it modalOptions = { name: 'extrafields', title: 'Pro options', left: '5px', top: '40px', width: '270px' }; modal = self.createNewModal(modalOptions); for (i = 0; i < data.length; i += 1) { field = data[i]; paramObj = {}; paramObj.field = field; paramObj.type = 'extrafields'; self.addSettingsField(paramObj); } self.reloadPreset(); }; /* * Add a field to selected place * paramObj * * @returns {unresolved} * .field - field definition - no data or assignations here * .settings - contain field settings */ self.addSettingsField = function (paramObj, loadDefaults) { var field = paramObj.field, thisField, thisInput, i, manipulator, fieldset, fieldParam, container, inputFields = []; if (loadDefaults === undefined) { loadDefaults = false; } //add support for multi value field if (field.settingType === 'cssmultival') { if (!paramObj.target) { //create a new modal for it var modalOptions = { name: field.name, title: field.label, left: '0', top: '50px', width: '270px' }; container = self.createNewModal(modalOptions); } else { container = paramObj.target; } //create a fieldset fieldset = self.settingFields[field.name] = $('
    '); //add fieldset to extended fields container.append(fieldset); var XYSliderOptions = false; //add all controls for (i = 0; i < field.values.length; i += 1) { fieldParam = field.values[i]; var privateInputField = thisInput; var subfield = fieldParam; //create a field with label around var manipulator = $(''); manipulator.appendTo(fieldset); privateInputField = manipulator.find('input'); privateInputField.data('fieldInfo', subfield); privateInputField.data('settings', paramObj.settings); // ADD CORRESPONDING ENTRY IN FIELD SETTINGS if (paramObj.settings && !paramObj.settings.params) { var params = {}; paramObj.settings.params = params; } //append field to extended list fieldset.append(thisField); //extend field with whatever privateInputField = self.extendField(privateInputField, subfield.extendWith); // if handle is assigned add actions if (subfield.handle) { if (!XYSliderOptions) { XYSliderOptions = {}; XYSliderOptions.actions = []; } // action can be x, y, deg, distance // stop - last action don't trigger input change XYSliderOptions.id = privateInputField.data('settings').uniqueId; inputFields[subfield.handle.linkTo] = privateInputField; } } var XYSlider = false; if (XYSliderOptions) { var rand = Math.random() * 1000, stop = true; // if xy slider set then add it XYSliderOptions.label = field.label; if (field.invertX) { XYSliderOptions.invertX = true; } XYSliderOptions.settingName = paramObj.settings.uniqueId; var Mathra = Math.random(); XYSliderOptions.actions = function (x, y, deg, distance) { inputFields['x'] ? ( inputFields['x'].val(x), inputFields['x'].trigger('change', stop) ) : false; inputFields['y'] ? ( inputFields['y'].val(y), inputFields['y'].trigger('change', stop) ) : false; inputFields['deg'] ? ( inputFields['deg'].val(deg), inputFields['deg'].trigger('change', stop) ) : false; inputFields['distance'] ? ( inputFields['distance'].val(distance / 2), inputFields['distance'].trigger('change', stop) ) : false; }; //XYSliderOptions.target = paramObj.target; var $XYSlider = self.currentElement.XYSlider(XYSliderOptions); XYSlider = $XYSlider.data('XYSlider'); //add to effect handles self.effectSliders[paramObj.settings.uniqueId] = XYSlider.$handleHolder; if (!paramObj.settings.enabled) { self.effectSliders[paramObj.settings.uniqueId].hide(); } } //bind action to the inputs var inputs = fieldset.find('input'); //bind change to inputs inputs.bind('change click keyup', function (event, stop) { // settings var settings = $(this).data('settings'), fieldInfo = $(this).data('fieldInfo'), storage = $(this).data('storage'), val = $(this).val(), XYSliderX, XYSliderY; if (stop === undefined) stop = false; // add arrow up - down support //37 - left, 38 - up, 39 - right, 40 - down if (event.which === 38 && !isNaN(val)) { $(this).val(parseFloat(val) + 1); $(this).trigger('change'); return false; } else if (event.which === 40 && !isNaN(val)) { $(this).val(parseFloat(val) - 1); $(this).trigger('change'); return false; } // save param setting settings.params[fieldInfo.settingName] = val; //console.log($(this).data('fieldInfo').settingName + ', ' + $(this).val() + ', ' + ($(this).data('fieldInfo').unit || '')) //get values of all siblings and create one value for the element var completeValue = ''; inputs.each(function () { var fieldInfo = $(this).data('fieldInfo'), unit = ''; if (fieldInfo.unit) { unit = fieldInfo.unit; } //get field info completeValue += ' ' + $(this).val() + unit; if ($(this).val() == '') { $(this).val(fieldInfo['default']); } if (XYSlider && !stop && fieldInfo.handle) { if (fieldInfo.handle.linkTo === 'x') { XYSliderX = $(this).val(); } else if (fieldInfo.handle.linkTo === 'y') { XYSliderY = $(this).val(); } } }); // when changing value of the input move the handle too // if this input is linked to a handle if (XYSlider && !stop && fieldInfo.handle) { // get "linked to" of a handle and move x or y accordingly if (XYSliderX && XYSliderY) { XYSlider.setPosition(XYSliderX, XYSliderY); } else if (XYSliderX) { XYSlider.setPosition(XYSliderX, false); } else if (XYSliderY) { XYSlider.setPosition(false, XYSliderY); } } // if this is text-shadow if (field.settingName === 'text-shadow') { //var effect = self.getElementsEffect(settings.uniqueId); completeValue = completeValue.replace(/, +$/, ''); var XYSliderValues = XYSlider.getCurrentValues(); self.drawEffects({ completeValue: completeValue, target: self.currentElement, color: settings.params.color, x: -XYSliderValues.x, y: XYSliderValues.y, deg: 180 - XYSliderValues.deg * -1, distance: XYSliderValues.distance, effectId: settings.uniqueId, effectsList: ['textShadow'] }); } else if (field.settingName === 'text-stroke') { // go through all settings //var effect = self.getElementsEffect(settings.uniqueId); completeValue = completeValue.replace(/, +$/, ''); //var XYSliderValues = XYSlider.getCurrentValues(); self.drawEffects({ target: self.currentElement, color: settings.params.color, distance: settings.params.width, effectId: settings.uniqueId, spread: settings.params.spread, effectsList: ['stroke'] }); } else if (field.settingName === 'text-extrude') { var XYSliderValues = XYSlider.getCurrentValues(); self.drawEffects({ target: self.currentElement, color: settings.params.color, deg: 180 - XYSliderValues.deg * -1, distance: XYSliderValues.distance, effectId: settings.uniqueId, effectsList: ['extrude3d'] }); } else if (field.settingName === 'text-extrude-shadow') { var XYSliderValues = XYSlider.getCurrentValues(); self.drawEffects({ color: settings.params.color, target: self.currentElement, deg: 180 - XYSliderValues.deg * -1, distance: XYSliderValues.distance, effectId: settings.uniqueId, effectsList: ['extrude3d', 'shadow3d'] }); } else if (field.settingName === 'text-shadow-multiple') { var XYSliderValues = XYSlider.getCurrentValues(); self.drawEffects({ target: self.currentElement, color: settings.params.color, opacity: settings.params.opacity, deg: 180 - XYSliderValues.deg * -1, distance: XYSliderValues.distance, effectId: settings.uniqueId, effectsList: ['shadow3d'] }); } else { //console.log(field.settingName + ': ' + completeValue); self.updateCssSettings(field.settingName, completeValue); self.updateSelectedElement(field.settingName, completeValue); } return false; }); // load defaults if (loadDefaults) { for(var i = 0; i < inputs.length; i++) { inputs.eq(i).trigger('change'); } // inputs.eq(0).trigger('change'); } //reset field button action fieldset.find('a.resetField').click(function () { thisInput.val(''); thisInput.trigger('change'); alert('When resetting settings or deleting preset you have to save to see the change'); }); } else { self.settingFields[field.name] = $('
    '); thisField = self.settingFields[field.name]; thisInput = self.getField(field.name); thisInput.data('fieldInfo', field); if (paramObj.target) { paramObj.target.append(thisField); } else if (paramObj.type === 'premium') { self.$extendedFields.append(thisField); } else if (paramObj.type === 'extrafields') { self.modals['extrafields'].append(thisField); } else { if (field.name === 'selector') { thisField.insertAfter('#presetsDropdownFieldset'); } else { self.$standardFields.append(thisField); } } //reset field button action thisField.find('a.resetField').click(function () { thisInput.val(0); thisInput.trigger('change'); thisInput.val('none'); thisInput.trigger('change'); thisInput.val('inherit'); thisInput.trigger('change'); thisInput.val(''); thisInput.trigger('change'); }); if (field.settingType === 'dropdown') { thisInput = self.extendField(thisInput, 'dropdown'); } else { thisInput = self.extendField(thisInput, field.extendWith); } //general actions - apply settings if (field.settingType === 'css' || field.settingType === 'dropdown') { //bind change to color picker thisInput.bind('change click keyup', function () { //console.log($(this).data('fieldInfo').settingName + ', ' + $(this).val() + ', ' + ($(this).data('fieldInfo').unit || '')) self.updateCssSettings($(this).data('fieldInfo').settingName, $(this).val()); self.updateSelectedElement($(this).data('fieldInfo').settingName, $(this).val() + ($(this).data('fieldInfo').unit || '')); return false; }); } else if (field.settingType === 'csstransform') { //bind change to color picker thisInput.bind('change click keyup', function () { //console.log($(this).data('fieldInfo').settingName + ', ' + $(this).val() + ', ' + ($(this).data('fieldInfo').unit || '')) self.updateCssSettings($(this).data('fieldInfo').settingName, $(this).val()); self.updateSelectedElement($(this).data('fieldInfo').settingName, $(this).val() + ($(this).data('fieldInfo').unit || '')); return false; }); } else if (field.settingType === 'general') { //bind change to color picker thisInput.bind('change click', function () { self.updateSettings($(this).data('fieldInfo').settingName, $(this).val()); self.updateSelectedElement($(this).data('fieldInfo').settingName, $(this).val()); return false; }); } } }; // extend field with slider, color picker etc self.extendField = function (field, extendWith) { if (extendWith === 'slider') { var input = (function () { var min = 1, max = 100, step = 1, value = 40, orientation = 'horizontal', reverse = false, $slider = $('
    '), input = field, fieldset = input.closest('fieldset'); fieldset.addClass('slider-extended'); fieldset.append($slider); if (input.data('fieldInfo').slider) { min = parseFloat(input.data('fieldInfo').slider.min); max = parseFloat(input.data('fieldInfo').slider.max); step = parseFloat(input.data('fieldInfo').slider.step); if (input.data('fieldInfo').slider.orientation) { orientation = input.data('fieldInfo').slider.orientation; } if (input.data('fieldInfo').slider.value) { value = input.data('fieldInfo').slider.value; } if (input.data('fieldInfo').slider.reverse) { reverse = true; } } //init slider $slider.slider({ range: 'min', value: value, min: min, max: max, step: step, orientation: orientation, slide: function (event, ui) { if (!reverse) { input.val(ui.value); } else { //reversed values input.val(max + min - ui.value); } input.trigger('change'); } }); //bind value change to the size slider input.bind('change click', function () { var val = $(this).val(); if (val) { $slider.slider('value', parseFloat(val)); } return false; }); return input; }()); } else if (extendWith === 'dropdown') { var input = (function () { var $dropdown = $(''), input = field, fieldset = input.parents('fieldset'), key; fieldset.addClass('dropdown-extended'); fieldset.find('label').append($dropdown); for(key in input.data('fieldInfo').dropdown) { var val = input.data('fieldInfo').dropdown[key]; $dropdown.append(''); } $dropdown.bind('change', function () { input.val($(this).val()); input.trigger('change'); }); //bind value change to the size slider input.bind('change click', function () { var val = $(this).val(); if (val) { $dropdown.val(val); } return false; }); return input; }()); } else if (extendWith === 'colorPicker') { var input = (function () { var input = field; input.change(function () { $(this).css('backgroundColor', $(this).val()); }); //init color picker input.ColorPicker({ color: '#0000ff', onShow: function (colpkr) { $(colpkr).show(); return false; }, onHide: function (colpkr) { $(colpkr).hide(); return false; }, onChange: function (hsb, hex, rgb) { input.val('#' + hex); input.trigger('change'); input.trigger('change').css('backgroundColor', '#' + hex); }, onBeforeShow: function () { $(this).ColorPickerSetColor(this.value); } }).bind('keyup', function () { $(this).ColorPickerSetColor(this.value); }); return input; }()); } else if (extendWith === 'selectorPicker') { var input = (function (field) { var replacementField, thisInput, selectorPicker, selectorPicker2, input = field, field = field.data('fieldInfo'), fieldset = input.parents('fieldset'); self.settingFields[field.name] = $('
    '); replacementField = self.settingFields[field.name]; thisInput = self.getField(field.name); selectorPicker = $(''); selectorPicker2 = $(''); self.$selectorPicker = selectorPicker; self.$selectorPicker2 = selectorPicker2; // //setTimeout(function () { self.$selectorPicker.insertBefore(self.settingFields.presets); //}, 100); //replacementField.prepend(selectorPicker); replacementField.prepend(selectorPicker2); selectorPicker.on('click', function () { self.bindGetSelector(); return false; }); selectorPicker2.on('click', function () { self.bindGetSelector(true); return false; }); //replace default field fieldset.replaceWith(replacementField); replacementField.find('label').hide(); thisInput.data('fieldInfo', field); //return replaced input return thisInput; }(field)); } return input; }; // get field value self.getField = function (name) { var input = self.settingFields[name].find('input'); return input; }; // set field value self.setField = function (name, value) { var input = self.getField(name); input.val(value); input.trigger('change'); }; /* * EFFECTS */ self.loadEffectsPanel = function (data) { var i, field, paramObj, dropdown, option, field, effectsList = $('
    '); // save effects to array self.effects = data; // Create effects modal var modalOptions = { id: 'effectsPanel', name: 'effects', // name conflict was here title: 'Effects', left: '50%', top: '50px', width: '190px' }; var modal = self.createNewModal(modalOptions); dropdown = $(''), arrow = $(''), label = $('' + effectDefinition.label + ''), closeButton = $('x'); if (loadDefaults === undefined) { loadDefaults = 0; } // create item markup effectItem = $('
    '); effectItem.append('
    '); effectItem.find('.label').append(arrow); effectItem.find('.label').append(enabledCheckbox); effectItem.find('.label').append(label); effectItem.find('.label').append(closeButton); effectItem.append(effectParams); effectParams.hide(); if (effectSettings.enabled) { enabledCheckbox.attr('checked', 'true'); } // add settings effectsModal.prepend(effectItem); var paramObj = []; paramObj.field = effectDefinition; paramObj.settings = effectSettings; paramObj.target = effectParams; paramObj.type = 'extrafields'; // actions label.click(function (e) { if (effectParams.is(':visible')) { arrow.animateRotate(0); } else { arrow.animateRotate(90); } e.preventDefault(); effectParams.slideToggle(); }); arrow.click(function (e) { if (effectParams.is(':visible')) { arrow.animateRotate(0); } else { arrow.animateRotate(90); } e.preventDefault(); effectParams.slideToggle(); }); // close button closeButton.click(function (e) { e.preventDefault(); // delete effect from self.removeEffect(effectSettings.uniqueId, effectItem); }); // enable disable checkbox enabledCheckbox.click(function (e) { if ($(this).is(':checked')) { self.enableEffect(effectSettings.uniqueId, effectItem); } else { self.disableEffect(effectSettings.uniqueId, effectItem); } }); self.addSettingsField(paramObj, loadDefaults); //add item reference in settings and settings in item //effectSettings.el = effectItem; ERROR on stringify effectItem.data('settings', effectSettings); return effectItem; }; /* * get effect definition by id */ self.getEffectDefinitionByName = function (effectId) { if (!self.effects) return false; // go thorugh all effects and find the ONE for (var i = 0; i < self.effects.length; i++) { var effect = self.effects[i]; if (effect.settingName === effectId) { return effect; } } return false; }; /* * get style */ self.getStyleDefinitionByName = function (styleId) { if (!self.styles) return false; // go thorugh all effects and find the ONE for (var i = 0; i < self.styles.length; i++) { var style = self.styles[i]; if (style.settingName === styleId) { return style; } } return false; }; /* * Enable effect * * @param {type} effectId */ self.enableEffect = function (effectId, $effectItem) { if (!self.currentPreset.effects) return false; var effect = self.getElementsEffect(effectId); effect.enabled = 1; // if has handle show it if (self.effectSliders[effectId]) { self.effectSliders[effectId].show(); } // update text shadow effects self.updateTextShadowEffects(self.currentElement); }; /* * Disable effect * * @param {type} effectId */ self.disableEffect = function (effectId, $effectItem) { if (!self.currentPreset.effects) return false; var effect = self.getElementsEffect(effectId); effect.enabled = 0; // delete shadow css self.removeShadowEffect(effectId); // if has handle hide it if (self.effectSliders[effectId]) { self.effectSliders[effectId].hide(); } }; /* * Delete effect from an element * * @param {type} effectId */ self.removeEffect = function (effectId, $effectItem) { if (!confirm('Remove the effect?')) return; if (!self.currentPreset.effects) return false; // go thorugh all effects and find the ONE for (var i = 0; i < self.currentPreset.effects.length; i++) { var effect = self.currentPreset.effects[i]; if (effect.uniqueId === effectId) { self.currentPreset.effects.splice(i, 1); } } // delete shadow css self.removeShadowEffect(effectId); if (self.effectSliders[effectId]) { // remove handle self.effectSliders[effectId].remove(); } // delete entry $effectItem.remove(); }; /* * Get effect of an element * * @param {type} effectId */ self.getElementsEffect = function (effectId) { if (!self.currentPreset.effects) return false; // go thorugh all effects and find the ONE for (var i = 0; i < self.currentPreset.effects.length; i++) { var effect = self.currentPreset.effects[i]; if (effect.uniqueId === effectId) { return effect; } } }; /* draw effects options.target; options.deg; options.distance; options.effectId; options.effectsList; */ self.drawEffects = function (options) { if (!self.shadowSupport) return false; var depth = options.distance / 10, subjectColor = options.target.css('color'), color = options.color, subjectColorRgb = self.parseRgb(subjectColor), rColor = subjectColorRgb.r, gColor = subjectColorRgb.g, bColor = subjectColorRgb.b, i = 0, j = 0, speed = i, xDist = 0, yDist = 0, //get effect effect = self.getElementsEffect(options.effectId), angle = options.deg; if (color) { var colorRgb = self.html2rgb(color.replace('#', '')); } else { colorRgb = subjectColorRgb; } // set default angle if (angle === undefined) { angle = 290; } // reset current elements calculated effect value effect.calculated = ''; // go through effects which should be applied for (i = 0; i < options.effectsList.length; i++) { depth = options.distance / 10; var effectName = options.effectsList[i]; switch (effectName) { case 'textShadow': effect.calculated += options.completeValue; //console.log(effect.calculated); //completeValue += ' ' + $(this).val() + unit; //effect.calculated = completeValue.replace(/, +$/,'') break; case 'stroke': var spread = 2; if (options.spread) { spread = options.spread; } // if distance is bigger than 4 add if (options.distance > 4) { // slash effect.calculated += options.distance + 'px ' + options.distance + 'px ' + spread + 'px ' + color + ', '; effect.calculated += -options.distance + 'px ' + options.distance + 'px ' + spread + 'px ' + color + ', '; effect.calculated += options.distance + 'px ' + -options.distance + 'px ' + spread + 'px ' + color + ', '; effect.calculated += -options.distance + 'px ' + -options.distance + 'px ' + spread + 'px ' + color + ', '; // top and down effect.calculated += options.distance + 'px 0px ' + spread + 'px ' + color + ', '; effect.calculated += -options.distance + 'px 0px ' + spread + 'px ' + color + ', '; effect.calculated += '0px ' + options.distance + 'px ' + spread + 'px ' + color + ', '; effect.calculated += '0px ' + -options.distance + 'px ' + spread + 'px ' + color + ', '; } else { // only slash effect.calculated += options.distance + 'px ' + options.distance + 'px ' + spread + 'px ' + color + ', '; effect.calculated += -options.distance + 'px ' + options.distance + 'px ' + spread + 'px ' + color + ', '; effect.calculated += options.distance + 'px ' + -options.distance + 'px ' + spread + 'px ' + color + ', '; effect.calculated += -options.distance + 'px ' + -options.distance + 'px ' + spread + 'px ' + color + ', '; } case 'extrude3d': // get color color rColor = colorRgb.r; gColor = colorRgb.g; bColor = colorRgb.b; //initially take 20% off rColor = rColor / 100 * 80, gColor = gColor / 100 * 80, bColor = bColor / 100 * 80; //loop to depth for (j = 0; j < depth; j++) { //calculate x and y of next shadow speed = 1.2; xDist += speed * Math.sin(angle * Math.PI / 180); yDist += speed * -Math.cos(angle * Math.PI / 180); xDist = xDist; yDist = yDist; //percentage darkened var percentageDone = j / depth; //darkening strength - the bigger depth the lower sstrength var light = 10 - percentageDone * 10; //darken the next shadow a bit take 10% rColor = Math.floor(rColor / 100 * 91 + light); gColor = Math.floor(gColor / 100 * 91 + light); bColor = Math.floor(bColor / 100 * 91 + light); color = 'rgb(' + rColor + ', ' + gColor + ', ' + bColor + ')'; //put together shadow setting effect.calculated += xDist.toFixed(2) + 'px ' + yDist.toFixed(2) + 'px ' + 0.3 + 'px ' + color + ', '; } break; case 'shadow3d': //generate text shadow value // get color color rColor = colorRgb.r; gColor = colorRgb.g; bColor = colorRgb.b; //loop to depth for (j = 0; j < depth; j++) { if (j > 3 && i % 3) continue; //calculate x and y of next shadow speed = 6; xDist += speed * Math.sin(angle * Math.PI / 180); yDist += speed * -Math.cos(angle * Math.PI / 180); xDist = xDist; yDist = yDist; //lighten the next shadow a bit take 10% rColor = Math.floor(rColor / 90 * 100); gColor = Math.floor(gColor / 90 * 100); bColor = Math.floor(bColor / 90 * 100); var opacity = options.opacity; if (!opacity) opacity = 0.3; color = 'rgba(' + rColor + ', ' + gColor + ', ' + bColor + ', ' + opacity + ')'; //put together shadow setting effect.calculated += xDist.toFixed(2) + 'px ' + yDist.toFixed(2) + 'px ' + ((j + 1) * 2) + 'px ' + color + ', '; } break; } } // filter result effect.calculated = effect.calculated.replace(/, +$/, ''); //apply text shadow self.updateTextShadowEffects(options.target); }; /* * Remove shadow effect * * @param {type} subject */ self.removeShadowEffect = function (effectId) { // delete from shadow effects delete self.currentPreset.shadowEffects[effectId]; // update shadow effects on given element self.updateTextShadowEffects(self.currentElement); }; //update effects self.updateTextShadowEffects = function (subject) { var allShadows = ''; // go through all currently applied for (var i = 0; i < self.currentPreset.effects.length; i++) { var effect = self.currentPreset.effects[i]; if (effect.calculated && effect.enabled) { if (allShadows) allShadows += ', '; allShadows += effect.calculated; } } if (allShadows === '') { allShadows = 'none'; } //get all different text shadows //subject[0].style.textShadow = allShadows + ' !important'; subject.each(function () { $(this).style('textShadow', allShadows, 'important'); }); self.updateCssSettings('text-shadow', allShadows); }; /* * * PRESETS MANAGEMENT * */ /* * * Create a new preset - selection * */ self.createPreset = function (presetName, selector) { var property, newPreset, newPresetId; if (selector === undefined || !selector) { selector = 'PICK AN ELEMENT NOW - or type CSS selector(advanced)'; } //get first preset as a template newPreset = {}; //set preset variables newPreset.name = presetName; newPreset.selector = selector; newPreset.fontid = ''; newPreset.fontName = ''; newPreset.effects = []; // !!! when styles are array they are not visible for PHP? newPreset.styles = {}; //reset css styles for (property in newPreset.styles) { newPreset.styles[property] = ''; } //push the preset at the end newPresetId = self.options.presets.push(newPreset) - 1; //add preset to the dropdown and select it self.$presetsDropdown.append(''); //get preset id and load it self.loadPreset(newPresetId); }; //add new preset self.renamePreset = function () { //current preset option var currPresetOption = self.$presetsDropdown.find('option[value=' + self.currentPresetNo + ']'), presetName = prompt('New preset name i.e. paragraph', currPresetOption.text()), property; if (!presetName) { return; } self.$presetsDropdown.find('option[value=' + self.currentPresetNo + ']').text(presetName); self.currentPreset.name = presetName; }; //delete preset self.deletePreset = function (presetNo, silent) { if(silent === undefined) { if (!confirm("Are you sure you want to delete this preset?")) { return false; } } if (self.options.presets.length === 1) { alert('At least one preset has to be present'); return; } if(silent === undefined) { self.unhighlightCurrent(); } self.options.presets.splice(presetNo, 1); self.$presetsDropdown.find('option[value=' + presetNo + ']').remove(); // delete all presets self.$presetsDropdown.html(''); // recreate presets menu to number values from 0 for (var i = 0; i < self.options.presets.length; i += 1) { var preset = self.options.presets[i], presetName = self.options.presets[i].name, presetId = i; // unwire all outlined elements if (preset.selector.indexOf('ELEMENT NOW') === -1 && preset.selector.indexOf('PICK ELEMENT') === -1) { $(preset.selector).data('wired', false); } self.$presetsDropdown.append(''); } if(silent === undefined) { self.outlineAllPresets(); alert('When resetting settings or deleting preset you have to save to see the change'); self.loadPreset(0); } else if (self.options.presets && self.options.presets[1]) { self.loadPreset(1); } else { self.loadPreset(0); } }; //delete current preset self.deleteCurrentPreset = function () { self.deletePreset(self.currentPresetNo); }; /* * Reload currently loaded preset */ self.reloadPreset = function () { self.loadPreset(self.currentPresetNo); }; /* * load preset - load selection with all param values * * @param {type} presetNo * @returns {unresolved} */ self.loadPreset = function (presetNo) { var preset; presetNo = parseInt(presetNo, 10); var preset = self.options.presets[presetNo]; self.unloadPreset(); if (!preset) { return; } if (self.mode === 'postPage') return; // if this is preset 0 hide appearance panel if (presetNo === 0) { self.$apr.hide(); } else { self.$apr.show(); } // if only one preset exists hide appearance panel if (self.options.presets.length == 1) { self.settingFields.presets.hide(); self.$selectorPicker2.hide(); } else { self.settingFields.presets.show(); self.$selectorPicker2.show(); } // unload effects self.unloadCurrentElementEffects(); self.currentPresetNo = presetNo; self.currentPreset = preset; // if current selector is invalid current element is false if (self.currentPreset.selector.indexOf('ELEMENT NOW') !== -1 || self.currentPreset.selector.indexOf('PICK ELEMENT') !== -1) { self.currentElement = false; } else { // otherwise get current element self.currentElement = $(self.currentPreset.selector); } // add space for shadow effects self.currentPreset.shadowEffects = []; //select preset from dropdown self.$presetsDropdown.val(presetNo); self.populateStyles(preset); self.highlightCurrent(); //load effects self.loadEffectSettings(); self.loadFontPreview(); }; self.populateStyles = function (preset) { var property, found; /* populate general fields */ for (property in preset) { found = $('body').find('input[title=' + property + ']'); if (found.length) { found.val(preset[property]); found.trigger('change'); } } /* populate css fields */ for (property in preset.styles) { found = $('body').find('input[title=' + property + ']'); if (found.length) { found.val(preset.styles[property]); found.trigger('change'); } } }; self.unloadPreset = function () { var $field, $input, $dropdown, key; // go through all fields for (key in self.settingFields) { $dropdown = []; $field = self.settingFields[key]; if (!$field || !($field instanceof $)) { continue; } $input = $field.find('input'); $input.val(''); //$input.trigger('change'); $dropdown = $field.find('select'); if ($dropdown.length) { $dropdown.val(''); $input.hide(); } } }; self.loadFontPreview = function () { var preset = self.currentPreset, imageUrl = '', originalBg = $('#fontfaceSettings').data('originalBackground'); if (preset['fontid'] && preset['fontName']) { if (!originalBg) { $('#fontfaceSettings').data('originalBackground', $('#fontfaceSettings').css('backgroundImage')); } imageUrl = self.options.FFW_baseUrl + '/public/fonts/' + preset['fontid'] + '/' + preset['fontName'] + '.png'; $('#fontfaceSettings').css({'backgroundImage': 'url(' + imageUrl + ')'}); } else if (originalBg) { $('#fontfaceSettings').css({'backgroundImage': $('#fontfaceSettings').data('originalBackground')}); } } /** * * FONTS BROWSER * */ /* Create HTML markup */ self.createFontPanel = function () { var i; var iframe = ''; //create html within font browser self.$el.show(); self.$el.append($('

    x

    ')); self.$el.append(''); self.$el.append('
    '); self.$el.append('
    '); self.$el.append('
    ' + iframe + '
    '); self.$el.find('.tab').hide(); self.$el.find('.tab').eq(0).show(); self.$el.find('.tablink').on('click', function (e) { var target, tab; e.preventDefault(); self.$el.find('.tab').hide(); target = $(this).attr('href'); tab = self.$el.find('#' + target).show(); if (target === 'uploaded') { self.loadPrivateFonts(); } return false; }); self.$el.css('left', '0') .draggable({ handle: self.$el.find('.draggableModalBar') }); $('body').on('mousedown', '.draggableModal', function () { self.modalToTop(this); }); self.$el.find('a.closeModal').on('click', function () { self.$el.hide(); return false; }); }; /* * Show fonts browser */ self.showFontsBrowser = function () { if (!this.fontInitialized) { self.createFontPanel(); self.loadFontCategories(); this.fontInitialized = true; } else { self.$el.toggle(); } self.modalToTop(self.$el); }; /* * Init fonts browser carousel */ self.initCarousel = function () { var carousel = self.$el.find('#FFW_browser_carousel').fcarousel({ buttonNextHTML: '', buttonPrevHTML: '', animation: 1000, scroll: 2 }); }; /* * Load font categories */ self.loadFontCategories = function () { //make ajax request to get categories self.xhrPost({ url: self.options.FFW_baseUrl + '/fontcategories/fontplugininit', data: { apikey: self.options.apikey, blogurl: fontBlogUrl, ver: self.version }, format: 'html' }, function (data) { //if empty answer display error if (!data || data === '') { self.$el.html('

    An error has occurde

    Please try again later

    '); } //hide loader self.$el.find('#loading').remove(); //show fonts list self.$el.find('#fontslist').html(data); //bind close to close button self.$el.find('a.close_link').on('click', function () { self.$el.toggle(); }); //init carousel self.initCarousel(); }); }; /* * bind onclick to links to reveal subcategories */ self.bindShowCategoriesAction = function () { $('body').on('click', self.baseSelector + ' #categoriesList > ul li a.categoryChoose', function () { var categoryId = $(this).attr('name'); //hide all subcategories of other parents self.$el.find('#subcategoriesList li').hide(); self.$el.find('#subcategoriesList li.instructions').show(); //show all subcategories of this parent self.$el.find('#subcategoriesList li#FFW_parentcategory_' + categoryId).show(); self.$el.find('.fcarousel-next').click(); return false; }); }; //bind onclick to reveal font of category self.bindShowFontsAction = function () { //bind onclick subcategories to load their fonts $('body').on('click', self.baseSelector + ' #subcategoriesList > ul li a.categoryChoose', function () { var categoryId = $(this).attr('name'); self.xhrPost({ url: self.options.FFW_baseUrl + '/fontcategories/wpfontsforwebcategoryfonts/catid/' + categoryId, data: { apikey: self.options.apikey, blogurl: fontBlogUrl }, format: 'html' }, function (data) { //if empty answer display error if (!data || data === '') { self.$el.html('

    An error has occurde

    Please reload page and try again later

    '); } //apply content to div self.$el.find('#fontList').html(data); //move carousel right self.$el.find('.fcarousel-next').click(); }); return false; }); //bind delete function $('body').on('click', self.baseSelector + ' #uploaded a.delete', function () { if (!confirm("Are you sure you want to delete this font?")) { return false; } var fontId = $(this).attr('name'); self.xhrPost({ url: self.options.FFW_baseUrl + '/api', data: { action: 'deletefont', apikey: self.options.apikey, blogurl: fontBlogUrl, fontid: fontId } }, function (data) { if (data.success === 'true') { self.loadPrivateFonts(); } else { alert('Font deleting error.'); $('.fontUploadForm').show(); $('.fontUploading').hide(); } }); return false; }); }; /* * when clicked on font in fonts browser */ self.setFontOnclick = function () { var selector; //bind onclick font change action to font images $('body').on('click', self.baseSelector + ' #fontList a.font_pick, ' + self.baseSelector + ' .fontsList a.font_pick', function () { var element, fontName = $(this).parent().attr('title'), selector; //PAGE POST version if (self.mode === 'postPage') { //it's single post editing page //set font to id from name attribute of a self.setTinyMCEFont($(this).attr('name'), fontName); return false; } else { //GENERAL VERSION //get selector selector = self.currentPreset.selector; //exit when default selector if (selector.indexOf('ELEMENT NOW') != -1 || selector.indexOf('PICK ELEMENT') != -1) { return; } //set form fields self.currentPreset.fontid = $(this).attr('name'); self.currentPreset.fontName = fontName; //get target element from iframe or current page if ($("#header1preview").length) { element = $("#header1preview").contents().find(); self.applyFont(element); } else { self.applyFont(); } self.loadFontPreview(); return false; } }); }; /** * apply font to selection **/ self.applyFont = function (frame) { //get selector var element, elements, fontName = self.currentPreset.fontName, selector = self.currentPreset.selector, head, linkElement; if(frame === undefined) { element = $(document); head = document.getElementsByTagName('head')[0]; } else { element = frame; head = element[0].getElementsByTagName('head')[0]; } linkElement = $(document.createElement('link')); //get and add stylesheet linkElement.attr({ href: self.options.FFW_baseUrl + '/font/generatepreviewcss/?id=' + self.currentPreset.fontid, rel: 'stylesheet', type: 'text/css' }); linkElement.appendTo(head); //set font family to a selector elements = element.find(selector); elements.each(function () { $(this).style("font-family", fontName, 'important'); }); } /* * Load uploaded fonts * */ self.loadPrivateFonts = function () { var apikey = self.options.apikey || false; //load private fonts self.xhrPost({ url: self.options.FFW_baseUrl + '/font/getuserfonts', data: { apikey: apikey, blogurl: fontBlogUrl, blogname: fontBlogName }, format: 'html' }, function (data) { self.$el.find('#uploaded').html(data); }); }; /* * Initialize font upload form */ self.initUploadForm = function () { $('body').on('submit', self.baseSelector + ' #fontUpload', function () { self.ajaxFontUpload.start(); }); }; /* * Upload font using ajax * */ self.ajaxFontUpload = (function () { return { start: function () { $('.fontUploadForm').hide(); $('.fontUploading').show(); $('#fontUploadIframe').load(function () { self.loadPrivateFonts(); //get info about the upload /*$.getJSON(self.options.FFW_baseUrl + '/font/wpaddsummary', function (data) { if (data.success === 'true') { self.loadPrivateFonts(); } else { alert('Font upload error. Check if file is not blocked against embedding.'); $('.fontUploadForm').show(); $('.fontUploading').hide(); } });*/ }); } }; }()); /* * * ELEMENT SELECTION AND CSS RULE GENERATION * */ /* * Enter element selection mode * * @param {type} add * @returns {unresolved} */ self.bindGetSelector = function (add) { //get selector var selector = self.currentPreset.selector; //add cancel button if (!self.$cancelSelecting) { self.$cancelSelecting = $('Stop selecting'); $('body').append(self.$cancelSelecting); self.$cancelSelecting.data('cancelSelecting', true); //hide other elements self.$presets.hide(); } else { self.$cancelSelecting.show(); //hide other elements self.$presets.hide(); } $('a, button').on('click.selectionMode', function (e) { e.preventDefault(); self.handleSelectionClick($(this), add); return false; }); $('body').on('click.selectionMode', '*', function (e) { e.preventDefault(); self.handleSelectionClick($(this), add); return false; }); $('body').on('mouseover', '*', function () { if ($(this).data('cancelSelecting')) { return; } self.hoverSelector = self.getSelector(this); self.hoverHighlightCurrent(); $(this).css('outline', '3px dashed rgba(50,50,250,0.7)'); (function () { var element = $(this); setTimeout(function () { element.css('outline', 'none'); }, 100); }()); return false; }); $('body').on('mouseout', '*', function () { $(this).css('outline', 'none'); return false; }); }; /* * Enter selection mode * */ self.handleSelectionClick = function ($el, add) { //if this is cancel selecting button if ($el.hasClass('cancelSelecting')) { self.stopSelectionMode(); self.reloadPreset(); return; } //if the element's preset is already created just pick it up if ($el.data('wired')) { self.$cancelSelecting.css('outline', 'none'); self.stopSelectionMode(); self.loadPreset($el.data('presetNo')); return false; } var sel = self.getSelector($el[0]), selectorInput, comma; //return false; //if not add to current preset mode if (!add) { self.stopSelectionMode(); var val = prompt('Name the selection i.e. title, header or paragraph. It\'ll be now listed in the upper left corner.'); //if not ask for new selection name if (!val) { self.bindGetSelector(add); return false; } else { //create a new preset of given selector self.createPreset(val, sel); } } self.outlineAllPresets(); selectorInput = self.getField('selector'); if (add) { comma = selectorInput.val() ? ', ' : ''; selectorInput.val(selectorInput.val() + comma + sel); } else { selectorInput.val(sel); } selectorInput.trigger('change'); self.stopSelectionMode(); self.highlightCurrent(); //load preset again to apply changes to a new element if (add) { self.reloadPreset(); } }; /* * Exit element selection mode * * @param {type} htmlcol * @returns {rgb} */ self.stopSelectionMode = function () { $('body').off('mouseover', '*'); $('body').off('click.selectionMode', '*'); $('a').off('.selectionMode'); $('button').off('.selectionMode'); $(this).css('outline', 'none'); $('body').off('mouseout', '*'); self.$cancelSelecting.hide(); //hide other elements self.$presets.show(); }; /* * Generate CSS selector for passed element * * @param {type} element * @returns {selector} */ self.getSelector = function (element) { var selector = $(element).parents() .map(function () { return this.tagName; }) .get().reverse().join(" "), id, classNames, selectorsArr, sel, parents = [], selectors = []; //go through each mapped object and get id class etc for (var i = 0; (i < $(element).parents().length && i < 4); i++) { var $parent = $(element).parents().eq(i), parentSelector = $parent[0].nodeName; //classses only for first 3 parents(now it's reversed) if (i < 2) { //get id //if (id = $parent.attr('id')) { // parentSelector += '#' + id; //} //class names classNames = $parent.attr("class"); if (classNames) { parentSelector += "." + $.trim(classNames).replace(/\s/gi, "."); } } selectors.push(parentSelector); } selector = selectors.reverse().join(' '); //get element tagname if (selector) { selector += " " + $(element)[0].nodeName; } id = $(element).attr("id"); if (id) { selector += "#" + id; } classNames = $(element).attr("class"); if (classNames) { selector += "." + $.trim(classNames).replace(/\s/gi, "."); // remove ui-draggable when re-selecting element with once removed draggability //ui-draggable } return selector; }; /* * Scroll to selected element * * @returns {unresolved} */ self.scrollToSelection = function () { var selector = self.currentPreset.selector, container, found; container = $('body'); //exit when default selector if (selector.indexOf('ELEMENT NOW') !== -1 || selector.indexOf('PICK ELEMENT') !== -1) { return; } //get by selector from the iframe found = container.find(selector); //scroll to the top when no el selected if (!found.length) { return; } //animate scroll $('html, body').animate({ scrollTop: (parseInt(found.offset().top, 10) - 150) }, 'slow'); }; /* * Highlight current element on hover */ self.hoverHighlightCurrent = function () { var selector = self.hoverSelector; if (self.tempHightlighted) { self.tempHightlighted.css('outline', 'none'); } //exit when default selector if (selector.indexOf('ELEMENT NOW') !== -1 || selector.indexOf('PICK ELEMENT') !== -1) { return; } self.tempHightlighted = $(selector); self.tempHightlighted.css('outline', '3px dashed rgba(100,250,100,0.7)'); }; /* * highlight all elements(with edititng option) */ self.outlineAllPresets = function () { //go through all presets for (var i = 0; i < self.options.presets.length; i++) { if (parseInt(i, 10) === parseInt(self.currentPresetNo, 10)) continue; var preset = self.options.presets[i]; var selector = preset.selector; //exit when default selector if (selector.indexOf('ELEMENT NOW') != -1 || selector.indexOf('PICK ELEMENT') != -1) { continue; } var litme = $(selector); litme.css('outline', '2px dashed rgba(150,150,250,0.3)'); $('.deletePreset').remove(); litme.css("cursor", 'pointer', 'important'); if (litme.data('wired') === true) { continue; } litme.data('wired', true); (function () { var ind = i; litme.data('presetNo', ind); litme.click(function (e) { // onbeoforeunload helps here //e.preventDefault(); if (parseInt($(this).data('presetNo'), 10) !== parseInt(self.currentPresetNo, 10)) { e.preventDefault(); self.loadPreset(ind); } }); litme.hover( function () { if (parseInt($(this).data('presetNo'), 10) !== parseInt(self.currentPresetNo, 10)) { $(this).css('outline', '2px dashed rgba(150,150,250,0.9)'); } }, function () { if (parseInt($(this).data('presetNo'), 10) !== parseInt(self.currentPresetNo, 10)) { $(this).css('outline', '2px dashed rgba(150,150,250,0.3)'); } } ); }()); } }; /* * highlight current * @returns {unresolved} */ self.highlightCurrent = function () { var selector = self.currentPreset.selector, btn; self.outlineAllPresets(); //exit when default selector if (selector.indexOf('ELEMENT NOW') != -1 || selector.indexOf('PICK ELEMENT') != -1) { return; } self.hightlighted = $(selector); self.hightlighted.css('outline', '3px dashed rgba(250,50,30,0.7)'); self.hightlighted.style("cursor", 'move', 'important'); if(!self.hightlighted.find('.deletePreset')[0]) { btn = $('') self.hightlighted.append(btn); btn.click(function (e) { e.preventDefault(); self.deleteCurrentPreset(); return false; }); } self.makeCurrentDraggable(); }; /* * Removes highlighting from current element * * @returns {unresolved} */ self.unhighlightCurrent = function () { var selector = self.currentPreset.selector; self.outlineAllPresets(); //exit when default selector if (selector.indexOf('ELEMENT NOW') != -1 || selector.indexOf('PICK ELEMENT') != -1) { return; } self.hightlighted = $(selector); self.hightlighted.css('outline', 'none'); self.hightlighted.style("cursor", ''); //self.removeCurrentDraggable(); // remove draggable self.hightlighted.draggable("destroy"); }; /* * make current element draggable */ self.makeCurrentDraggable = function () { var isMozilla = $.browser && $.browser.mozilla; self.hightlighted.draggable({ drag: function (event, ui) { var top = ui.position.top, left = ui.position.left, $el = self.hightlighted; $el.each(function () { //set position to relative $(this).style("position", 'relative', 'important'); //set slider y to dragged value (parseInt(top,10) + parseInt($(window).scrollTop(),10)) //for firefox only if (isMozilla) { self.updateCssSettings('top', (parseInt(top, 10) + parseInt($(window).scrollTop(), 10)) + 'px'); } else { self.updateCssSettings('top', top + 'px'); } //set slider x to dragged value self.updateCssSettings('left', left + 'px'); //set position to relative self.updateCssSettings('position', 'relative'); }); //waiting to set top and left to "!important" after jquery ui draggable setTimeout(function () { $el.each(function () { //for firefox only if (isMozilla) { $(this).style("top", (parseInt(top, 10) + parseInt($(window).scrollTop(), 10)) + 'px', 'important'); } else { $(this).style("top", top + 'px', 'important'); } //set slider x to dragged value $(this).style("left", left + 'px', 'important'); }); }, 10); } }); }; /** * * COLOR CONVERSION FUNCTIONS * */ /* * Convert from HEX/HTML to rgb object * * @param {type} htmlcol * @returns {rgb} */ self.html2rgb = function (htmlcol) { var rgb = new Object(); rgb.r = self.html2dec(htmlcol.substr(0, 2)); rgb.g = self.html2dec(htmlcol.substr(2, 2)); rgb.b = self.html2dec(htmlcol.substr(4, 2)); return rgb; }; /* * Parse RGB to HTML to * @param {type} rgbString * @returns {@exp;self@call;html2rgb} */ self.parseRgb = function (rgbString) { return self.html2rgb(self.rgbString2hex(rgbString)); }; self.rgbString2hex = function (rgbString) { var parts = rgbString.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); // parts now should be ["rgb(0, 70, 255", "0", "70", "255"] if (!parts) return '000000'; delete(parts[0]); for (var i = 1; i <= 3; ++i) { parts[i] = parseInt(parts[i]).toString(16); if (parts[i].length == 1) parts[i] = '0' + parts[i]; } var hexString = parts.join(''); return hexString; }; /* * Converts color from HEX/HTML-style (00-FF) to decimal color value (0-255) */ self.html2dec = function (h) { return parseInt(h, 16); }; /* * * MODAL WINDOWS AND OVERLAYS * */ /* * Create new modal window */ self.createNewModal = function (options) { var modal = $('

    ' + options.title + 'x

    '); modal.css({ left: options.left ? options.left : 'auto', right: options.right ? options.right : 'auto', top: options.top, width: options.width, position: 'fixed', zIndex: 1000000 }); if (options.nobar) { modal.find('h1.draggableModalBar').hide(); } if (!options.show) { modal.hide(); } if (options.id) { modal.attr('id', options.id); } self.modals[options.name] = modal; //make draggable modal.draggable({ handle: modal.find('.draggableModalBar'), start: function () { $(this).css('bottom', 'auto'); } }); modal.find('.closeModal').click(function () { modal.hide(); return; }); modal.appendTo($('body')); //self.modalToTop(modal); return modal; }; /* * create a popup with content for overlay links * * @returns {unresolved} */ self.bindLinkOverlay = function () { $('body').on('click', 'a.font_url, a.overlay_url, button.overlay_url', function () { var modal, frameSrc, iframe, overlay, href = $(this).attr('href'); if ($(this).attr('data-upgrade') === 'true') { self.setupApikeyCheckingInterval(); } //create overlay overlay = $('
    '); overlay.appendTo(document.body); overlay.css({ position: 'fixed', top: 0, left: 0, width: '100%', height: '100%', 'background-color': '#333', filter: 'alpha(opacity=50)', '-moz-opacity': 0.5, '-khtml-opacity': 0.5, opacity: 0.5, 'z-index': 200000001 }); modal = $('

    ' + href + ' x

    '); modal.css({ position: 'fixed', left: '-475px', marginLeft: '50%', width: '950px', top: '40px', zIndex: 200000001 }); modal.find('.closeModal').bind('mousedown', function () { modal.remove(); overlay.remove(); return; }); frameSrc = href; iframe = $(''); iframe.appendTo(modal); modal.appendTo($('body')).show(); overlay.click(function () { modal.remove(); $(this).remove(); }); return false; }); return; }; /* * adapt plugin looks to different modes - global or post page */ self.adaptOptionsToMode = function () { if (self.mode === 'postPage') { self.settingFields.presets.hide(); self.$presets.hide(); self.$apr.show(); self.settingFields.selector.hide(); $('#fontSaveSettings').hide(); $('#effectsButton').hide(); } }; /* * Show hide modal * * @param {type} modalName */ self.toggleModal = function (modalName) { if (self.modals[modalName] === undefined) { return; } // if this is effects button if (modalName === 'effects') { // detect CSS text-shadow support in JavaScript if (document.createElement("detect").style.textShadow !== "") { alert('Sorry, but your browser does not support advanced effects. Please upgrade to Chrome, Firefox or Internet Explorer 10'); return; } } self.modals[modalName].toggle(); self.modalToTop(self.modals[modalName]); }; /* * Put modal on top * * @param {type} selectedModal */ self.modalToTop = function (selectedModal) { var highestZindex = 1000000; for (var index in self.modals) { var modal = self.modals[index], modalZindex = modal.css('zIndex'); if (parseInt(modalZindex, 10) > parseInt(highestZindex, 10)) { highestZindex = modalZindex; } } $(selectedModal).css({ 'zIndex': parseInt(highestZindex, 10) + 1 }); }; /* * * TINY MCE EDITOR * */ /* * set font for post or page in tinymce */ self.setTinyMCEFont = function (fontId, fontName) { //get selection var selection = tinyMCE.activeEditor.selection.getContent(), selectorValid, $selectorContents, fontClass, node, newSpan, newHTML, inserted, $tempDiv, multipleSelectors; //only apply if something is selected if (!selection) { return; } //get node fontClass = "fontplugin_fontid_" + fontId + "_" + fontName; node = tinyMCE.activeEditor.selection.getNode(); //selectorValid - validate selector created from selected text. //required because for example "." with nothing following breaks function execution selectorValid = true; try { $selectorContents = $(selection); } catch (e) { selectorValid = false; } if (selectorValid && $selectorContents.length > 1) { selectorValid = false; multipleSelectors = true; } if (selectorValid && ($.trim($(node).html()) === $.trim(selection) || $.trim($(node).html()) === $.trim($(selection).html()))) { //console.log('already isolated'); tinyMCE.activeEditor.dom.setAttrib(node, 'class', fontClass); } else if (multipleSelectors) { $selectorContents.each(function () { $(this).removePrefixedClasses('fontplugin_fontid_'); $(this).addClass(fontClass); $(this).attr('class').split(' '); }); $tempDiv = $('
    ').append($selectorContents); newHTML = $tempDiv.html(); inserted = tinyMCE.activeEditor.selection.setContent(newHTML); } else { newSpan = $("" + selection + ''); //get span html together with span itself newHTML = $('
    ').append(newSpan.clone()).html(); //add font in use inserted = tinyMCE.activeEditor.selection.setContent(newHTML); tinyMCE.activeEditor.selection.select(tinyMCE.activeEditor.dom.select('span.' + fontClass)[0]); } //loads font face to iframe editor self.loadFontFace(fontId); }; /* * Load font to tinymce iframe */ self.loadFontFace = function (fontId) { var head = self.postIframe[0].getElementsByTagName('head')[0], linkElement = $(document.createElement('link')); linkElement.attr({ href: self.options.FFW_baseUrl + '/font/generatepreviewcss/?id=' + fontId, rel: 'stylesheet', type: 'text/css' }); linkElement.appendTo(head); }; /* * * UTILITY FUNCTIONS * */ /* * execute cross domain request, JSON response * * @param {type} params * @param {type} callback * @returns {@exp;$@call;post} */ self.xhrPost = function (params, callback) { var data = params; if (params.format === undefined) { params.format = 'json'; } data.action = 'cross_domain_request'; return $.ajax({ type: "POST", url: ajaxproxy, data: data, success: function (response) { if (typeof callback === 'function') { callback(response); } }, dataType: params.format, error: function (xhr, textStatus, errorThrown) { alert("An error occurde. This might be a conflict with another plugin. Error message: " + textStatus); } }); }; /* * show loading spinner */ self.showLoading = function () { if ($('.fontLoading').length) { //self.$apr.find('fieldset').hide(); //self.$el.find('> div').hide(); $('.fontLoading').show(); $('.fontLoading').show(); } else { $('body').append('
    '); } }; /* * hide loading spinner */ self.hideLoading = function () { $('.fontLoading').hide(); $('.fontLoading').hide(); }; /* * detect if we're on post editing page or on any other page */ self.detectMode = function () { var iframe = $('#content_ifr'); if (iframe.length) { self.mode = 'postPage'; self.postIframe = iframe.contents(); //self.tinyMCE = $(self.postIframe).find('#tinymce'); } else { self.mode = 'global'; } // detect CSS text-shadow support in JavaScript if (document.createElement("detect").style.textShadow === "") { self.shadowSupport = true; } else { self.shadowSupport = false; } }; // finally INIT self.init(); }; /* * set default options */ $.fontPlugin.defaultOptions = { FFW_baseUrl: 'http://fontsforweb.com' }; /* * make jquery plugin */ $.fn.fontPlugin = function (options) { return this.each(function () { var fontPlugin = new $.fontPlugin(this, options); }); }; /* * HANDLE PLUGIN * * options * startX -vstarting position * startY -vstarting position * name - handle name * label - visible label * */ var XYSlider = function (el, options) { var self = this; self.$el = $(el); self.$el.data('XYSlider', self); // immediate init funciton self.init = function () { // get handle element by name var handleHolder = self.$el.data(options.settingName), handle = (handleHolder && handleHolder[0]) ? handleHolder.find('.XYSlider') : false; // if doesn't exist create the handle if (!handleHolder || !handleHolder[0]) { handleHolder = $('
    '); handle = $('
    ' + options.label + '
    '); handleHolder.append(handle); self.$el.append(handleHolder); } self.$el.data(options.settingName, handleHolder); // save in object self.$handleHolder = handleHolder; self.$handle = handle; // make handle draggable handle.each(function () { // show handle $(this).parent().show(); // make draggable $(this).draggable({ drag: function (event, ui) { var top = ui.position.top, left = ui.position.left, // revert top: more is higher y = -top, x = options.invertX ? -left : left; self.commitDrag(x, y, true); } }); }); }; /* * Change position of draggable * * x - x position * y - y position */ self.setPosition = function (x, y) { var handle = self.$handle; if (x !== false) { self.x = x; } else if (self.x === undefined) { x = 0; self.x = 0; } else { x = self.x; } if (y !== false) { y = y; self.y = y; } else if (self.y === undefined) { y = 0; self.y = 0; } else { y = self.y; } if (x === false && y === false) { return; } // move x and y - revert top: more is higher handle.css({ 'top': -y + 'px', 'left': (options.invertX ? -x : x) + 'px' }); // commit drag self.commitDrag(x, y, true); }; /* * Execute callbacks */ self.commitDrag = function (x, y, stop) { var rad = Math.atan2(x, y), deg = rad * (180 / Math.PI), distance = 0; if (stop === undefined) { stop = false; } //get angle if (deg < 0) { deg = 360 + deg; } // round angle to full degrees deg = Math.round(deg); // calculate distance distance = Math.sqrt(x * x + y * y); // set current values self.setCurrentValues(x, y, deg, distance); // call actions options.actions.call(this, x, y, deg, distance); }; self.setCurrentValues = function (x, y, deg, distance) { self.x = x; self.y = y; self.deg = deg; self.distance = distance; return self; }; self.getCurrentValues = function () { return { 'x': self.x, 'y': self.y, 'deg': self.deg, 'distance': self.distance }; }; self.init(); }; // use prototype $.fn.XYSlider = function (options) { return this.each(function () { //new XYSlider(this, options); //var pluginName = 'XYSlider'; new XYSlider(this, options); }); }; }(jQuery)); // source --> http://www.asmwebtech.com/wp-content/plugins/font/js/pluginscripts.js?pver=7.5.1&ver=4.7.5 // JavaScript Document jQuery(document).ready(function () { clearInterval(documentLoaded); // if there's no "draggable" then something's wrong so load provided jquery ui initializeFontPlugin(); }); // this won't run unless jquery is completely overwritten by some plugin var documentLoaded = setInterval(function () { if(document.readyState === "complete") { alert('Conflict with another plugin which overwrites jQuery'); // stop checking if the document is laoded clearInterval(documentLoaded); } }, 100); function initializeFontPlugin () { /* show font plugin browser BUTTON */ jQuery('#FFW_chooseFontButton, #content_FFWButton, #wp-admin-bar-font_settings > a').bind('click', function (e) { e.preventDefault(); //if initialized already just toggle if (jQuery('#fontplugin')[0] && jQuery('#fontplugin').data('fontPlugin') && jQuery('#fontplugin').data('fontPlugin').$presets) { jQuery('#fontplugin').data('fontPlugin').$presets.fadeToggle(500); } else { window.onbeforeunload = function () { return 'Have you saved the changes?'; }; //open jquery plugin var fontPluginWrapper = jQuery('
    '), settings; fontPluginWrapper.appendTo('body'); settings = { "settingFields": [ { "type": "text", "label": "Selector", "name": "selector", "settingType": "general", "settingName": "selector", "extendWith": "selectorPicker" }, { "type": "text", "label": "Font size", "name": "font-size", "settingType": "css", "settingName": "fontSize", "extendWith": "slider", "unit": "px" }, { "type": "text", "label": "Color", "name": "color", "settingType": "css", "settingName": "color", "extendWith": "colorPicker" }] }; if(!jQuery.fontPlugin) { jQuery.fn.fontPlugin = fontPlugin; } try { fontPluginWrapper.fontPlugin(settings); } catch (e) { console.dir(e); alert('The plugin cannot start because of an error. This is usually caused by a conflict with a poorly written plugin or a theme overwriting jQuery. Try disabling all other plugins and then see if the "Font" plugin works. If that works, enable them one by one to find the one, which is causing the conflict. If nothing helps copy this error and send to the plugin author: ' + e); } } return false; }); // extend with object size if(!Object.size) { Object.size = function(obj) { var size = 0, key; for (key in obj) { if (obj.hasOwnProperty(key)) size++; } return size; }; } //make image colorpickable /*function makeImagesColorpickable() { var image = jQuery("#header1preview").contents().find('img'); jQuery("#header1preview").contents().find('a').click(function () { return false; }); image.click(function (e) { var img = new Image(), canvas, context, posX, posY, x, y, data, color; img.src = jQuery(this).attr('src'); canvas = jQuery(''); canvas[0].setAttribute('width', jQuery(this).width()); canvas[0].setAttribute('height', jQuery(this).height()); jQuery('body').append(canvas); context = document.getElementById('canvas').getContext('2d'); context.drawImage(img, 0, 0); posX = jQuery(this).offset().left; posY = jQuery(this).offset().top; x = Math.round(e.pageX - posX); y = Math.round(e.pageY - posY); data = context.getImageData(x, y, 1, 1).data; color = dec2html(data[0]) + dec2html(data[1]) + dec2html(data[2]); ffwSetFontColor('#' + color); return false; }); //calculating functions function dec2html(d) { // Converts from decimal color value (0-255) to HTML-style (00-FF) var hch = "0123456789ABCDEF", a = d % 16, b = (d - a) / 16; return hch.charAt(b) + hch.charAt(a); } }*/ // Escape regex chars with \ RegExp.escapeX = function (text) { return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); }; // The style function jQuery.fn.style = function (styleName, value, priority) { //console.log(styleName + ' - ' + value + ' - ' + priority); var node, style; // For those who need them (< IE 9), add support for CSS functions if (!CSSStyleDeclaration.prototype.getPropertyValue || !CSSStyleDeclaration.prototype.setProperty) { CSSStyleDeclaration.prototype.getPropertyValue = function (a) { return this.getAttribute(a); }; CSSStyleDeclaration.prototype.setProperty = function (styleName, value, priority) { var rule; priority = typeof priority !== undefined ? priority : ''; this.setAttribute(styleName, value); if (priority !== '') { // Add priority manually rule = new RegExp(RegExp.escapeX(styleName) + '\\s*:\\s*' + RegExp.escapeX(value) + '(\\s*;)?', 'gmi'); this.cssText = this.cssText.replace(rule, styleName + ': ' + value + ' !' + priority + ';'); } }; CSSStyleDeclaration.prototype.removeProperty = function (a) { return this.removeAttribute(a); }; CSSStyleDeclaration.prototype.getPropertyPriority = function (styleName) { var rule = new RegExp(RegExp.escapeX(styleName) + '\\s*:\\s*[^\\s]*\\s*!important(\\s*;)?', 'gmi'); return rule.test(this.cssText) ? 'important' : ''; }; } function camelToDash(str) { return str.replace(/\W+/g, '-') .replace(/([a-z\d])([A-Z])/g, '$1-$2'); } styleName = camelToDash(styleName); // DOM node node = this.get(0); // Ensure we have a DOM node if (typeof node === 'undefined') { return; } // CSSStyleDeclaration style = this.get(0).style; // Getter/Setter if (styleName !== undefined) { if (value !== undefined) { // Set style property priority = priority !== undefined ? priority : ''; //console.log(styleName + ', ' + value + ', ' + priority) style.setProperty(styleName, value, priority); } else { // Get style property return style.getPropertyValue(styleName); } } else { // Get CSSStyleDeclaration return style; } }; if(!jQuery.fn.inlineStyle) { jQuery.fn.inlineStyle = function (prop) { return this.prop("style")[jQuery.camelCase(prop)]; }; } (function ($) { $.fn.removePrefixedClasses = function (prefix) { if(!$(this).attr('class')) return; var classNames = $(this).attr('class').split(' '), className, newClassNames = [], i; //loop class names for(i = 0; i < classNames.length; i++) { className = classNames[i]; // if prefix not found at the beggining of class name if(className.indexOf(prefix) !== 0) { newClassNames.push(className); continue; } } // write new list excluding filtered classNames $(this).attr('class', newClassNames.join(' ')); }; }(jQuery)); if(!jQuery.fn.animateRotate) { jQuery.fn.animateRotate = function(angle, duration, easing, complete) { return this.each(function() { var $elem = jQuery(this); var currentRotationAngle = $elem.data('rotation'); if(currentRotationAngle === undefined) { currentRotationAngle = 0; } $elem.data('rotation', angle); jQuery({deg: currentRotationAngle}).animate({deg: angle}, { duration: duration, easing: easing, step: function(now) { $elem.css({ transform: 'rotate(' + now + 'deg)' }); }, complete: complete || jQuery.noop }); }); }; } }; // source --> http://www.asmwebtech.com/wp-content/plugins/quick-and-easy-faqs/public/js/quick-and-easy-faqs-public.js?ver=1.0.0 (function( $ ) { 'use strict'; /** * FAQs Toggles */ $(function() { $('.qe-toggle-title').click(function () { var parent_toggle = $(this).closest('.qe-faq-toggle'); if ( parent_toggle.hasClass( 'active' ) ) { $(this).find('i.fa').removeClass( 'fa-minus-circle' ).addClass( 'fa-plus-circle' ); parent_toggle.removeClass( 'active' ).find( '.qe-toggle-content' ).slideUp( 'fast' ); } else { $(this).find('i.fa').removeClass( 'fa-plus-circle' ).addClass( 'fa-minus-circle' ); parent_toggle.addClass( 'active' ).find( '.qe-toggle-content' ).slideDown( 'fast' ); } }); }); /** * FAQs Filter */ $(function() { $('.qe-faqs-filter').click( function ( event ) { event.preventDefault(); $(this).parents('li').addClass('active').siblings().removeClass('active'); var filterSelector = $(this).attr( 'data-filter' ); var allFAQs = $( '.qe-faq-toggle' ); if ( filterSelector == '*' ) { allFAQs.show(); } else { allFAQs.not( filterSelector ).hide().end().filter( filterSelector ).show(); } }); }); })( jQuery ); // source --> http://www.asmwebtech.com/wp-content/plugins/google-analyticator/external-tracking.min.js?ver=6.5.5 jQuery(document).ready(function(){jQuery("a").each(function(){var e=jQuery(this);var t=e.attr("href");if(t==undefined||t=="")return;var n=t.replace("http://","").replace("https://","");var r=t.split(".").reverse();var i=r[0].toLowerCase();var r=t.split("/").reverse();var s=r[2];var o=false;if(typeof analyticsFileTypes!="undefined"){if(jQuery.inArray(i,analyticsFileTypes)!=-1){o=true;e.click(function(){if(analyticsEventTracking=="enabled"){if(analyticsSnippet=="enabled"){_gaq.push(["_trackEvent","Downloads",i.toUpperCase(),t])}else{ga("send","event","Downloads",i.toUpperCase(),t)}}else{if(analyticsSnippet=="enabled"){_gaq.push(["_trackPageview",analyticsDownloadsPrefix+n])}else{ga("send","pageview",analyticsDownloadsPrefix+n)}}})}}if(t.match(/^http/)&&!t.match(document.domain)&&o==false){e.click(function(){if(analyticsEventTracking=="enabled"){if(analyticsSnippet=="enabled"){_gaq.push(["_trackEvent","Outbound Traffic",t.match(/:\/\/(.[^/]+)/)[1],t])}else{ga("send","event","Outbound Traffic",t.match(/:\/\/(.[^/]+)/)[1],t)}}else if(analyticsSnippet=="enabled"){_gaq.push(["_trackPageview",analyticsOutboundPrefix+n])}else{ga("send","pageview",analyticsOutboundPrefix+n)}})}})});